SSL証明書(crt)と秘密鍵(key)が正しいペアであるかを確認する

check_ssl_pair_top

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

SSL証明書の更新時に注意

新しい SSL 証明書をサーバーに設定して、設定ファイルの文法チェックも問題なし。しかし Apache / Nginx の再起動に失敗する…という経験はないでしょうか。

原因はSSL証明書(crt)と秘密鍵(key)の不一致が原因であることが多いです。そこで SSL 証明書(crt)と秘密鍵(key)が正しいペアであるかを確認する方法をメモ代わりに残します。

 

SSL証明書(crt)と秘密鍵(key)のペアを確認するコマンド

SSL証明書と秘密鍵が正しいペアであるかを確認する方法は、それぞれのハッシュ値を確認する方法が一般的です。SSL証明書のハッシュ値と秘密鍵のハッシュ値が同じ値であれば正しいペア。異なる値であればペアでないことが分かります。

下記にハッシュ値のコマンドを記載しますが、SSL証明書と秘密鍵でハッシュ値を求めるコマンドが異なる点に注意してください。

SSL証明書:ハッシュ値の確認コマンド

openssl x509 -in (SSL証明書[.crt]) -modulus -noout | openssl md5

秘密鍵:ハッシュ値の確認コマンド

openssl rsa -in (秘密鍵[.key]) -modulus -noout | openssl md5

ハッシュ値を確認するサンプル実行例

※正しいペアであれば同じ値を返します。

さいごに

規模の大きいウェブサービスで「apache2 reload」を実行しても「apache2 restart」を実行してもウェブサーバーが起動せずに「Failed」を返したとき、血の気が引く思いをする羽目になります。

特に他人が作成した証明書の適用依頼を受けたとき、念のためにSSL証明書と秘密鍵がペアであるかを事前に確認しましょう。