以前、LinuxのOpenSSLを使ってオレオレ認証局を作り、ESXiの自己署名証明書をインポートする手順を記載した。
自宅ESXiを先日6.7から7.0にバージョンアップを行ったので、その際に証明書も新しくインポートしなおすことにしたが、"ERROR:There is already a certificate
"というエラーが発生して証明書の発行(CSRに対する署名)に失敗した。
※Signed certificate is in newcert.pem
と最終行に表示されており、一見すると証明書が正常に発行されたように見えるが、実際は証明書は発行されていないので注意。
# cd /etc/pki/tls/misc
# ./CA -sign
~(中略)~
ERROR:There is already a certificate for /C=US/ST=California/L=Palo Alto/O=VMware, Inc/OU=VMware ESX Server Default Certificate/CN=192.168.33.12/emailAddress=ssl-certificates@vmware.com
~(以下略)~
DAmmd8agxO4NsMcfl6OzWs4whWX3xv7kS1drkrT8FkqfJ0F+7X174gjOXjhuvKGX
TjIsaV61YUPx83lQrwz0
-----END CERTIFICATE-----
Signed certificate is in newcert.pem
本記事では、OpenSSLで"ERROR:There is already a certificate"のエラーが発生した際の対処手順を記載する。
環境
今回の手順を試した環境は以下の通り。
- OS : CentOS Stream release 8
- OpenSSL : OpenSSL 1.1.1k FIPS 25 Mar 2021
事前に以下URLの手順にて、オレオレ認証局の構築やCA
スクリプトは配置済みであることを前提とする。
エラーに対する対処手順
本エラーの原因は、発行済み証明書のリストである/etc/pki/CA/index.txt
に、**今回発行しようとしている証明書の情報が重複している(まだ証明書が失効していない)**ためとなる。
以下、index.txt
の抜粋となるが、今回発行対象のESXiと同じCN=192.168.33.12
が存在していることがわかる。
# cat /etc/pki/CA/index.txt
~(中略)~
V 310501221913Z 0B41B73EACA2CA1C2BEC1B39B2318B4AE3352509 unknown /C=US/ST=California/L=Palo Alto/O=VMware, Inc/OU=VMware ESX Server Default Certificate/CN=192.168.33.12/emailAddress=ssl-certificates@vmware.com
本来は証明書の失効の処理を行い、その後証明書を再発行することが正しい手順となるが、手っ取り早くエラーを解消するためにはindex.txt
で重複する証明書情報を削除してしまえばよい。
index.txt
から該当行を削除後、再度証明書を発行すると問題なく成功した。
# ./CA -sign
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for /etc/pki/CA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number:
~(中略)~
T2JCerMlEQhoH0qXvJBcahulVqYkmX1Vcr4yt2HYJzJ3jVm/Hoe9McAnskjTySJ9
hk9/NnmdGpi6Gmb8jIAW
-----END CERTIFICATE-----
Signed certificate is in newcert.pem
以上で、OpenSSLで"ERROR:There is already a certificate
"のエラーが発生した際の対処手順は完了となる。
0 件のコメント:
コメントを投稿