それらが一致しないことを確認した後も、問題が発生します-それに対して何をすべきか。多くの場合、証明書は誤って組み立てられているだけです。CAが証明書に署名すると、次のようなブロックが送信されます
-----BEGIN CERTIFICATE-----
MIIAA-and-a-buncha-nonsense-that-is-your-certificate
-and-a-buncha-nonsense-that-is-your-certificate-and-
a-buncha-nonsense-that-is-your-certificate-and-a-bun
cha-nonsense-that-is-your-certificate-and-a-buncha-n
onsense-that-is-your-certificate-AA+
-----END CERTIFICATE-----
また、証明書を付与する権限を表すバンドル(多くの場合2つの証明書)も送信します。これは次のようになります
-----BEGIN CERTIFICATE-----
MIICC-this-is-the-certificate-that-signed-your-request
-this-is-the-certificate-that-signed-your-request-this
-is-the-certificate-that-signed-your-request-this-is-t
he-certificate-that-signed-your-request-this-is-the-ce
rtificate-that-signed-your-request-A
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICC-this-is-the-certificate-that-signed-for-that-one
-this-is-the-certificate-that-signed-for-that-one-this
-is-the-certificate-that-signed-for-that-one-this-is-t
he-certificate-that-signed-for-that-one-this-is-the-ce
rtificate-that-signed-for-that-one-this-is-the-certifi
cate-that-signed-for-that-one-AA
-----END CERTIFICATE-----
残念ながら、それらはそれほど明確にラベル付けされません。
一般的な方法は、これらすべてを1つのファイルにバンドルすることです-証明書、次に署名証明書。しかし、それらは簡単に区別できないため、誰かが誤ってそれらを他の順序に入れてしまうことがあります-証明書に署名してから、最後の証明書に気付かずに。その場合、証明書はキーと一致しません。
実行すると、証明書が何を表していると考えるかをテストして確認できます
openssl x509 -noout -text -in yourcert.cert
上部に「件名:」が表示され、データのように見えるものが表示されます。代わりにCAのように見える場合は、バンドルの順序が間違っている可能性があります。バックアップを作成し、最後の証明書を先頭に移動して、それが自分の証明書であることを期待する場合があります。
これが機能しない場合は、証明書を再発行する必要があるかもしれません。CSRを作成するときは、(ssl.keyまたはserver.keyだけでなく)対応するサーバーに明確にラベルを付け、mydomain.20150306.keyなどのように名前に日付を付けてコピーを作成します秘密鍵と公開鍵のペアが別のセットと混同されることはほとんどありません。