自己署名CA証明書を作成してから、このチュートリアル here を使用してクライアント証明書を作成しました。私はクライアント証明書を失効させようとしています:
openssl ca -keyfile rootCA.key -cert rootCA.crt -revoke ../oldCert/old.pem superseded
私が試してみると、このエラーが発生します:
Using configuration from /etc/ssl/openssl.cnf
unable to load certificate
140187823251392:error:0906D06C:PEM routines:PEM_read_bio:no start line:crypto/pem/pem_lib.c:691:Expecting: TRUSTED CERTIFICATE
私はインターネット上にあるものをすべて試しましたが、同じエラーが発生するだけです。証明書を失効させてCRLを生成するにはどうすればよいですか?
あなたのタイトルは誤解を招くものです。出力の最初の行に示されているように、デフォルトの構成ファイルを使用しています。
証明書を失効させてCRLを生成するにはどうすればよいですか?
これらは、OpenSSLでの2つの別個のステップです。
まず_openssl ca -revoke $certfile
_を使用しますが、理由を指定する必要がある場合は(必要はありません)、superseded
だけでなく_-crl_reason superseded
_のようなフラグを使用する必要があります。この手順では、「データベース」のみを更新します(通常は_index.txt
_という名前の単純なテキストファイルですが、別の方法で構成することもできます)。 CAキーと証明書ファイルが構成ファイルで指定されている場合(通常はそうする必要があります)、コマンドラインで指定する必要はありません。 (この操作は実際にはそれらを必要としませんが、それらにアクセスします。参照 OpenSSLが証明書を取り消すために秘密鍵を必要とするのはなぜですか? )
「データベース」が更新された後はいつでも、_openssl ca -gencrl [options]
_を使用して、現在の(更新された)コンテンツから実際にCRLを生成します。 CRL期間(日、時間、または秒)は、コマンドラインまたは構成ファイルで指定する必要があります。アップストリームのデフォルト設定では30日に設定されていますが、使用しているパッケージやその他の変更がわかりません。他のオプションはmanページに従って追加されるかもしれません。 CRLはそのキーで署名され、その証明書での検証用にマークされているため、この操作にはCAキーと証明書が必要です。
この「データベース」スキームは、OpenSSLを使用するUnixyシステムのca(1ssl?)
のマニュアルページの最初のテキストパラグラフで、かなり簡単に識別されます またはWeb上 :
Caコマンドは最小限のCAアプリケーションです。さまざまな形式で証明書要求に署名し、CRLを生成するために使用でき、発行された証明書とそのステータスのテキストデータベースも維持します。
「テキストデータベース」はindex.txtファイル(通常)であり、「[発行された証明書の]ステータス」は失効したかどうか、いつ、なぜ失効したかを示します。最初のタブ区切りフィールドが有効を表すVであるか、取り消されるを表すRであるかを示します。他の情報は3番目のフィールドにあり、かなり明白です。