SSL CSRを再利用できますか?


21

新しいWebサイトをテストするための自己認証SSL証明書を生成しました。サイトが公開される時が来たので、GeoTrustから証明書を購入したいと思います。自己証明書用に生成したものと同じCSRを使用できますか、それとも新しい証明書を作成する必要がありますか?

リッチ

回答:


19

同じキー、ドメイン(通称)、連絡先の詳細、および有効期間を使用している限り、同じCSRを使用できます。

正直なところ、CSRの生成は非常に簡単な作業です。そのため、連絡先の詳細を修正する必要がある場合(多くのSSLプロバイダーが厳しい)、それは大したことではありません。


1
同意する。CSRの生成は非常に簡単な作業であるため、なぜ再利用しようとするのかわからない。
-joeqwerty

5
OpenSSLをインストールしたら、約30秒で新しいCSRを生成できます。そして、あなたがそれがはるかに長くかかると思うなら、あなたは練習が必要なので間違いなくそれをします !!!!!
オースティン「危険」パワーズ

1
OPの場合には該当しませんが、証明書のピン留めを使用する場合は、クライアント側のアプリを更新するよりも同じCSRを使用する方が実用的です。
ブラック

キー、ドメイン、および詳細が同じ場合、CSRは同一になります。
graywh

11

あなたの例では、CSRを再利用する価値はないと思います。ただし、大規模で多様なチームのApple iOS開発者(私のように)には、これを行う正当な理由があります。すべての署名証明書を作成し(実際には、Appleに作成を依頼します)、同じ秘密キーから証明書をプッシュします。これにより、85を超えるアプリで簡単に共同作業を行うことができます。このため、単一のCSRを保持し、キーが有効である限り常に同じCSRを使用します。

私の知る限り、単一の秘密鍵からCSRを繰り返し生成する理由はありません。私が間違っている場合は修正したいと思います。


6
修正なしで4年が経ちました。私は間違っていないと思います。
ブルーノブロノスキー

5

期間が限定された証明書を持つことの主な利点は、秘密鍵が漏洩した場合の損害を軽減することです。CSRを再利用すると、秘密鍵も再利用されることになるため、CSRを再利用すると、秘密鍵を所有している誰かがあなたになりすますことができます。

それをしないでください。秘密鍵とCSRの両方の生成を自動化し、絶えず変化する秘密鍵をアプリケーション構築サーバーとプッシュサーバーに配布する便利な方法を見つけた方がよいでしょう。ほとんどの単なる致命的な開発者は、通常、アプリストアのリリース/配布ビルドを行う必要はないため、秘密キーは必要ありません。


1
「CSRを再利用することはあなたの秘密鍵も再利用することを意味する」というのは事実ですが、「CSRを再利用すると永遠にあなたになりすます」という意味ではありません。Nか月間キーを使用することにした場合、同じNか月間同じCSRを使用しても構いません。
ブルーノブロノスキー

2
はい、あなたは正しいブルーノです。CSRを再利用する人々は無知からそうしていると仮定し、「永久に」その実践を続けましたが、もちろん、限られた期間の注意深い計画に基づいて問題を認識している人もいるかもしれません。
ステファンL

1

実際には、これは単なるCSRのコンテナであるため、理論上は同じCSRを再利用できます。

  • あなたの公開鍵(RSA暗号化に使用される数字のみ(特定の数学))
  • 「サブジェクト」の詳細(ユーザー、ドメインなど)... その公開キーの所有者を識別するために使用されるテキスト

結局のところ、これは証明書(PublicKey証明書の略)についてです。

しかし、他の回答で述べたように、秘密鍵を定期的に変更することは良い習慣です。それは新しい証明書を意味し、それを取得するための新しいCSRを意味します。

CSRの内容を簡単に見ることができます

例えば

$ 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

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.