イントラネット用の認証局を作成しています。
ルートおよび中間CAを生成し、中間CAを使用してサーバー証明書に正常に署名しました。サーバー証明書にはCN=mysite.com
があります。
今後、このサーバー証明書の有効期限が切れ、新しい証明書を発行する必要があります。ただし、同じCN=mysite.com
を使用して別のCSRを作成すると、それに署名すると、
failed to update database
TXT_DB error number 2
別のCNで新しいCSRを作成すると、このエラーはなくなりますが、CNは同じである必要があります。そうしないと、ブラウザーはそれが有効であると表示しませんか?
どうすれば修正できますか?
編集:私は このガイドに従っています -リンクされたページの最後まですべてうまくいきますが、このページの手順を繰り返してsecond証明書、opensslは新しい証明書に別のCNを与えることを要求します。
SUBJ="/C=$C/ST=$ST/L=$L/O=$O/OU=$OU/CN=$CN"
# Generate CSR
echo "$PW" | openssl req \
-config "$CAROOT/intermediate/openssl.cnf" \
-new -sha256 -subj "$SUBJ" -passin stdin \
-key "$PRIV_ENC" -out "$CSR_INT" >/dev/null 2>&1 ||
{
>&2 echo "Could not openssl req";
exit 1;
}
# Sign CSR
openssl ca \
-config "$CAROOT/intermediate/openssl.cnf" \
-batch -extensions server_cert \
-days "$HTTP_DAYS" -notext -md sha256 \
-in "$CSR_INT" -out "$CRT_INT" ||
{
>&2 echo "Could not openssl ca";
exit 1;
}
失敗するのはopenssl ca
です。
重複が必要ですか?従来、ブラウザとクライアントでは、サブジェクト名のCommonName field がホスト名と一致する必要がありました。最近のものでは、SubjectAlternativeName(SAN) extension のエントリが優先されます。 other フィールドを異なるように設定できます。
O=Floo Manufacturing, OU=floo server 2016, CN=www.floo.example.com
O=Floo Manufacturing, OU=floo server 2017, CN=www.floo.example.com
また、CommonName自体は一意ではありませんが、サブジェクトDNは一意です。または、最近のクライアントでは、できますwww.floo.example.com
をSANに入れて、CommonNameのない一意のサブジェクトを使用します。しかし、opensslで証明書ごとにSANを実行するのは少し不便です。を参照してください。 https://security.stackexchange.com/questions/113484/followup-to-one-liner-to-create-cert-request-with-san
複製を許可するには:公式の方法
設定ファイルで($CAROOT/intermediate/openssl.cnf
)から 'セクション'に移動します(オプションの空白を含む[somename]
形式の行で区切られます)CA。コマンドラインで-name
を使用しなかったため、セクション名はdefault_ca
セクションまたはデフォルトセクション(最初の[ca]
行の前の上部)の[somename]
の値です。リンクの近くを見ると、おそらく[CA_default]
です。行を追加
unique_subject=no
スペースを使用し、# comment
はオプションです。または、このアイテムの変更の行がすでにあるか、コメントが解除されているが、リンクの近くを見ていると、おそらくそうではありません。
システムのマニュアルページca(1ssl)
またはCONFIGURATION FILE OPTIONSの the web を参照してください。
重複を許可するには:非公式な方法
Empty(切り捨て)従来のindex.txt
である構成済みdatabase
ファイルとリンクの近く彼らは明らかにそれを使用しています。またはそのファイルを編集し、削除したい件名の行を削除使用-しかし、この状況では、1つまたはいくつかしか持っておらず、それまたはそのすべてを再利用したいので、ファイルを空にする方が簡単です。
同じサブジェクトで複数の証明書を作成する場合は、次のように構成を変更できます。
[CA_default]
設定のCAセクション(おそらくopenssl.cnf
)で変更できます
unique_subject = no
ただし、この設定はファイルindex.txt.attr
にも保存されるため、これも変更する必要があります。そうしないと機能しません。