OpenSSL CAを使用した冗長証明書の生成

OpenSSL CAを使用した冗長証明書の生成

職場では、多くの内部サーバーには、openssl単純なスクリプトで直接生成されたSSL証明書があります。生成は正常に機能しましたが、後続の処理には改善が必要だったため、サーバーSSL証明書の暗号化されていないコピーがすべて失われました。その結果、新しい証明書を作成して展開するのに時間がかかりますが、これによって問題が発生します。

新しいSSL証明書を生成しようとすると、internal.server.companyプロセスの終わりにopensslが失敗します。

failed to update database
TXT_DB error number 2

これは、ホストの証明書がすでにデータベースに存在するためです。

古い証明書が期限切れになった場合、データベースから削除されると思いますopenssl ca -updatedbが、そうではありません。

エディタで(関連)アイテムを開き、見つかった行を検索index.txtinternal.server.companyて削除することでこの問題を解決できますが、これはハッキングのように見えます。すでに証明書があると思われる名前の新しい証明書を生成することをopensslが受け入れるための良い方法はありますか?

答え1

データベースとindex.txt同じフォルダにファイル(ファイル)を作成し、index.txt.attr次のコンテンツを追加します。

unique_subject = no

データベースファイルがどこにあるかわからない場合は、openssl.cnf次のように使用しているファイルを確認してください。

[ CA_default ]

dir             = ./demoCA              # Where everything is kept
certs           = $dir/certs            # Where the issued certs are kept
crl_dir         = $dir/crl              # Where the issued crl are kept
database        = $dir/index.txt

上記の例では、データベースはにあり、上にありindex.txtます。したがって、新しいファイルをに./demoCA入れる必要があります。index.txt.attr./demoCA

データベースファイル名がそのままの場合は、index新しいファイルの名前を指定する必要がありますindex.attr

関連情報