web-dev-qa-db-ja.com

SSLクライアント証明書を更新する

どこからでも利用できる必要がある内部で使用されるWebベースのソフトウェアについては、許可された消費者のブラウザーにインストールされるクライアント証明書を作成しました。

2012年が終わり、すべての期限が切れており、更新が必要です。 PKCS#12証明書(.p12)を配布しました

ここに私の質問

  • クライアント証明書の有効期間を延長することは可能ですか?
  • すべてのクライアントに証明書を再インストールする必要がありますか、それとも別の方法がありますか(たとえば、サーバーから一元的に、何らかの更新メカニズムがあります)?

  • Linuxでopensslを使用してクライアント証明書を更新/再生成するにはどうすればよいですか?


これは興味深いかもしれないので、これが私がブラウザ証明書を作成した方法です

# client private key
openssl genrsa -des3 -out client.key 1024

# generate certificate signing request
openssl req -new -key client.key -out client.csr

# create certificate, sign with server key
openssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt

# export into pkcs12
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
1
Michel Feldheim

クライアント証明書の有効期間を延長することは可能ですか?

いいえ、これは不可能です。
クライアント証明書には、変更できない特定の有効日があります。唯一の可能性は、新しい有効日で新しい証明書を作成することです。

すべてのクライアントに証明書を再インストールする必要がありますか、それとも別の方法がありますか

サーバーからクライアントのブラウザの証明書にアクセスすることはできません。できることは、ユーザーが新しい証明書を作成してブラウザーにインポートできるWebページ(クライアント証明書で認証された)を開発することです。
このWebページのサーバー側では、昨年使用したものと同じ証明書要求(少し安全性が低い)を使用して新しい証明書を作成するか、ユーザーに関する情報を使用して新しい証明書要求を作成できます。あなたのデータベース。投稿で説明したのと同じ方法で、opensslを使用してこれを行うことができます。

Linuxでopensslを使用してクライアント証明書を更新/再生成するにはどうすればよいですか

前の質問で書いたように、新しい証明書を作成する必要があります。これは、昨年使用した証明書要求を使用するか、新しい要求を作成することで実行できます(より安全ですが、より複雑です)。次に、サーバーキーを使用してそのリクエストに署名し、pkcs12にエクスポートする必要があります。

証明書の更新に問題があったとしても、現在の有効期間(1年)を守ります。証明書の有効期間が長いほど変更が大きくなるため、一部の許可されたユーザーは許可されなくなりますが、有効な証明書は保持されます。

2
lukassteiner