Bisakah saya menggunakan kembali CSR SSL?

21

Saya telah menghasilkan sertifikat SSL yang disertifikasi sendiri untuk menguji situs web baru. Waktunya telah tiba bagi situs untuk ditayangkan dan saya sekarang ingin membeli sertifikat dari GeoTrust. Dapatkah saya menggunakan CSR yang sama dengan yang saya hasilkan untuk swa-sertifikasi, atau apakah saya perlu membuat yang baru?

Kaya

Kim3er
sumber

Jawaban:

19

Selama Anda menggunakan kunci yang sama, domain (alias nama umum), detail kontak dan periode validitas Anda harus dapat menggunakan CSR yang sama.

Meskipun jujur ​​menghasilkan CSR adalah pekerjaan yang cukup sederhana, jadi jika Anda perlu mengubah rincian kontak (yang banyak dilakukan oleh penyedia SSL ketat) itu bukan masalah besar.

Koperasi
sumber
1
Saya setuju. Menghasilkan CSR adalah tugas sepele yang saya tidak mengerti mengapa Anda bahkan repot-repot mencoba menggunakannya kembali.
joeqwerty
5
Setelah Anda menginstal OpenSSL, Anda dapat menghasilkan CSR baru dalam waktu sekitar 30 detik. Dan jika Anda berpikir itu akan memakan waktu lebih lama - maka pasti lakukan itu karena Anda perlu latihan !!!!!
Austin '' Bahaya '' Powers
1
Tidak berlaku untuk kasus OP, tetapi jika Anda ingin menggunakan pinning sertifikat, lebih praktis untuk menggunakan CSR yang sama daripada memperbarui aplikasi sisi klien Anda.
hitam
Jika kunci, domain, dan detailnya sama, CSR akan sama.
graywh
11

Untuk contoh kasus Anda, saya pikir tidak ada gunanya mencoba menggunakan kembali CSRs. Namun, untuk tim pengembang Apple iOS yang beragam (seperti yang saya miliki) ada alasan bagus untuk melakukan ini. Kami membuat (sebenarnya, meminta Apple untuk membuat) semua sertifikat penandatanganan kami dan mendorong sertifikat dari kunci privat yang sama. Dengan begitu kita semua dapat berkolaborasi dengan mudah di 85+ aplikasi kami. Untuk alasan ini, kami menyimpan satu CSR di sekitar dan selalu menggunakan yang sama selama kuncinya valid.

Sejauh yang saya tahu, tidak ada alasan untuk berulang kali menghasilkan CSR dari satu kunci pribadi. Saya ingin dikoreksi jika saya salah.

Bruno Bronosky
sumber
6
Sudah 4 tahun tanpa koreksi. Saya kira saya tidak salah.
Bruno Bronosky
5

Manfaat utama memiliki sertifikat durasi terbatas adalah mengurangi kerusakan jika kunci pribadi Anda bocor. Seseorang yang memiliki kunci pribadi sebaliknya dapat menyamar sebagai Anda selamanya jika Anda menggunakan kembali CSR, karena menggunakan kembali CSR menyiratkan penggunaan kembali kunci pribadi Anda juga.

Tolong jangan lakukan itu, lebih baik untuk mengotomatisasi pembuatan kunci privat maupun CSR dan menemukan cara mudah untuk mendistribusikan kunci privat yang terus berubah ke server membangun aplikasi dan server push. Kebanyakan pengembang fana biasa biasanya tidak perlu melakukan rilis / distribusi-build untuk app store, jadi tidak perlu kunci privat.

Stefan L.
sumber
1
Meskipun benar bahwa "menggunakan kembali CSR menyiratkan penggunaan kembali kunci pribadi Anda juga", itu tidak berarti bahwa "menyamar menjadi Anda selamanya jika Anda menggunakan kembali CSR". Jika Anda memutuskan untuk menggunakan kunci selama N bulan, tidak apa-apa menggunakan CSR yang sama untuk N bulan tersebut.
Bruno Bronosky
2
Ya, Anda benar, Bruno. Saya berasumsi bahwa orang-orang yang menggunakan kembali CSR melakukannya karena ketidaktahuan dan dengan demikian melanjutkan praktik itu "selamanya", namun tentu saja mungkin ada beberapa yang mengetahui masalah ini dan melakukannya berdasarkan perencanaan yang cermat untuk waktu yang terbatas.
Stefan L
1

Secara teori Anda memang dapat menggunakan kembali CSR yang sama, karena ini hanyalah wadah untuk

  • Kunci Publik Anda (hanya Angka yang digunakan untuk enkripsi RSA (matematika khusus))
  • detail "Subjek" Anda (siapa Anda, domain apa, dll ...) Teks yang digunakan untuk Mengidentifikasi pemilik Kunci Publik itu

Lagipula inilah sertifikat (kependekan dari PublicKey Certificate)

Tetapi seperti dicatat dalam jawaban lain, itu adalah praktik yang baik untuk mengubah kunci pribadi secara teratur, sehingga menyiratkan Sertifikat baru, dan CSR baru untuk mendapatkannya.

Anda dapat dengan mudah melihat isi CSR

misalnya

$ openssl req -new -batch -subj "/CN=My Common Name/OU=My Org Unit/O=My Organisation" -sha256 -newkey rsa:2048 -keyout private.key -nodes -out request.csr
Generating a 2048 bit RSA private key
.............................................................................................+++++
.........+++++
writing new private key to 'private.key'
-----

$ ls
private.key  //  keep that private, the PublicKey side is easily be generated from this
request.csr // your PublicKey + Subject details

CSR

$ openssl req -in request.csr -text -noout
Certificate Request:
    Data:
        Version: 1 (0x0)
        Subject: CN = My Common Name, OU = My Org Unit, O = My Organisation
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:                    ///////// Matches the PrivateKey modulus
                    00:b1:e8:de:e6:bf:21:45:51:75:15:23:5e:6e:7a:
                    7d:95:53:e5:d5:ec:5b:38:cd:7f:38:2d:53:8a:54:
...
                    fe:b5:78:de:9b:c1:ee:c1:51:6f:fd:fb:0e:62:09:
                    03:87
                Exponent: 65537 (0x10001)   ///////// Matches the PrivateKey publicExponent
        Attributes:
            a0:00
    Signature Algorithm: sha256WithRSAEncryption
         a1:44:1f:b2:ec:c0:82:bc:99:da:69:ce:3e:77:9f:46:51:95:
...
         3b:2d:84:e3:73:ac:be:c8:da:29:fd:62:90:11:dd:8a:a6:4f:
         7b:f8:ac:f1

Dan PrivateKey

$ openssl rsa -in private.key -text -noout
// all the below are numbers that takes part in Mathematical encryption (search for RSA maths)
RSA Private-Key: (2048 bit, 2 primes)

// The Numbers that can be freely published
modulus:
    00:b1:e8:de:e6:bf:21:45:51:75:15:23:5e:6e:7a:
    7d:95:53:e5:d5:ec:5b:38:cd:7f:38:2d:53:8a:54:
...
    fe:b5:78:de:9b:c1:ee:c1:51:6f:fd:fb:0e:62:09:
    03:87
publicExponent: 65537 (0x10001)

// The Numbers that must be kept private !
privateExponent:
    0a:81:73:d8:30:65:28:90:bc:d7:38:b5:74:d4:aa:
...
    b1:9b:30:2e:a2:dd:46:c1:10:0f:b0:da:ac:b6:ea:
    01
prime1:
    00:e0:28:01:87:95:70:d0:b8:21:07:e0:4f:96:a6:
...
    66:28:8f:3d:d7:eb:e6:b4:81
prime2:
    00:cb:2e:fe:1b:b6:30:ea:8d:9e:6d:23:83:d8:b6:
...
    4d:64:39:5c:9c:18:a0:14:07
exponent1:
    22:e2:36:f2:b9:af:f7:db:5f:d0:90:f8:f1:d1:ff:
...
    3a:31:a8:87:2c:c0:17:81
exponent2:
    5a:8b:3d:77:f1:ef:c8:86:85:a4:13:20:8d:31:a4:
...
    a5:ba:1e:37:fd:8d:50:7f
coefficient:
    00:d3:d3:b6:81:4b:a9:c2:aa:ff:e1:07:cb:de:ea:
...
    5c:e9:3b:d3:f7:67:82:c3:7f
Julien
sumber