web-dev-qa-db-ja.com

認証局の署名キーを更新するにはどうすればよいですか?

私は認証局を検討している初心者です。私はしばらく前にこの記事に従って、独自の認証局をセットアップし、その助けを借りて独自のfreelan VPNネットワークをセットアップしました: https://github.com/freelan-developers/freelan/wiki/X509 -証​​明書-生成

基本的に、私がしなければならなかったのは電話することだけでした:

openssl req -new -x509 -extensions v3_ca -keyout key/ca.key -out crt/ca.crt -config ca.cnf

問題は、ca.crtの公開鍵であると私が信じているca.key証明書が、opensslに従って期限切れになっていることです。私はこの証明書を使用して他のキーに署名しましたが、もう一度それを通過する必要はありません。

有効期限の長い新しいca.crtファイルを簡単に作成する方法はありますか?

ca.crtの有効期限をどこかに設定しなければならなかったかどうかは覚えていませんが、1か月しか有効ではなかったので、設定したとは思いません。これが予想され、推奨されているのか、それとも実際に途中で犯した間違いなのか知りたいのですが。 ca.crt証明書は実際にどのくらいの期間有効である必要がありますか?

オンラインでさまざまなコマンドを見つけましたが、どれが自分に適しているかわかりません。例: https://stackoverflow.com/questions/13295585/openssl-certificate-verification-on-linuxhttps://serverfault.com/questions/306345/certification-authority-root-certificate-expiry-and-renewal

2
Chris

認証局の署名キーを更新するにはどうすればよいですか?

取り組むべき2つの問題があります。 1つは、エンドエンティティ(サーバーとユーザー)の証明書の継続性です。 2つ目は、ルートCAの変更です。


有効期限の長い新しいca.crtファイルを簡単に作成する方法はありますか?

はい。ただし、以下の詳細をご覧ください。


最初の問題であるエンドエンティティ(サーバーとユーザー)証明書の継続性は、ルートCAをロールオーバーするときに同じ公開鍵を使用することでほとんど解決されます。

新しい自己署名ルートCAは、関連するトラストストアにインストールする必要がありますが、キーの継続性は、エンドエンティティ証明書を再発行する必要があることを意味しますしません。ルートCAに新しい公開鍵を使用する場合は、willすべてのエンドエンティティ証明書を再発行する必要があります。


2番目の問題であるルートCAのロールオーバーは、有効期限が切れているために発生する必要があります。 CA /ブラウザベースライン要件 に準拠するためにハッシュがSHA-1からSHA-256に変更されるため、これはルートCAの再認証と同じ問題です。多くのCAが実際にこれを行っています。

同じ公開鍵を使用することで、ロールオーバーの影響を軽減できます。これは、CAの公開鍵の固定など、強化されたセキュリティ制御にも役立ちます。 If CA certificateが固定されている場合(public keyとは対照的に)、-のようなツールで多くの外来ノイズが発生します。 証明書パトロール

CAをロールオーバーするには、「同等の」ルートCA証明書(または可能な限り同等に近い)を作成する必要があります。ユーザーエージェントが証明書を一意に識別する方法の概要は、 RFC 4158、インターネットX.509公開鍵インフラストラクチャ:認証パスの構築 です。

RFC 4158の略語は、ペア{Subject Distinguished NameSerial Number}を使用して、ストア内の証明書を一意に識別することができることです。 CAまたは発行者は、再認証した場合でも、シリアル番号が一意であることを確認するためにsupposedです。

エンドエンティティ証明書には、Authority Key Identifier(AKID)など、一意に識別するための追加の方法があります。実際、サーバーの証明書は、発行者の{サブジェクト識別名シリアル番号}のハッシュをAKIDとして使用できます(正しく思い出せば)。

自己署名CA証明書を作成する方法を理解しているようですので、OpenSSLコマンドについては説明しません。


実際の問題は、公開鍵と秘密鍵のペアが危険にさらされたときに発生します。既存の公開鍵でCAをロールオーバーすることはできないため、新しいルートCA証明書を発行し、すべてのエンドエンティティ証明書を再発行する必要があります。


要約すると、ここに実用的なアイテムがあります:

  • CAに同じ公開鍵を使用する
  • CAに同じ識別名を使用する
  • CAに新しいシリアル番号を使用する
  • 新しく発行されたCAをすべてのクライアントマシンにインストールします
  • エンドエンティティ証明書を再発行しないでください
4
jww

https://serverfault.com/questions/306345/certification-authority-root-certificate-expiry-and-renewal によると、次のシーケンスが機能するはずです。

openssl req -new -key key/ca.key -out key/newca.csr
openssl x509 -req -days 3650 -in key/newca.csr -signkey key/ca.key -out crt/newca.crt
1
Chris