このガイドでは、RSA秘密鍵が特定の証明書署名要求(CSR)とその結果のSSL/TLS OpenSSL コマンドライン ツールを使用して証明書を作成します。
基本原則
RSA暗号では、秘密鍵と公開鍵(両方の鍵に埋め込まれている)は、 CSR と証明書は、同じものを共有することで数学的にリンクされています モジュラス 値。係数が秘密鍵間で同一であることを確認し、 CSR、そして証明書はそれらが一致するセットを形成していることを確認します。この手順は、「秘密鍵と証明書が一致しません」などのインストールエラーのトラブルシューティングに不可欠です。
前提条件
- システム (Linux、macOS、または WSL/Cygwin 経由の Windows) に OpenSSL がインストールされている必要があります。
- 秘密鍵ファイル(例:mykey.key)があり、 CSR ファイル (例: mycsr.csr)、および証明書ファイル (例: mycert.crt)。
OpenSSLを使用した検証手順
-
秘密鍵の整合性を確認する(推奨) モジュラスを比較する前に、秘密鍵ファイル自体が有効であることを確認してください。
openssl rsa -check -in mykey.key -nooutこのコマンドが「RSA key ok」と出力した場合、鍵構造は正常である可能性が高いです。続行する前にエラーを修正してください。
-
係数の抽出と比較 それぞれのハッシュを生成するか、完全なモジュラス出力を直接比較することで、モジュラスを比較できます。
方法1: モジュラスハッシュを比較する(推奨: SHA-256)
各ファイルの係数の SHA-256 ハッシュを生成します。暗号の整合性を確保するには、古い MD256 アルゴリズムよりも SHA-5 が優先されますが、この特定の比較チェックでは MD5 も引き続き機能します。
-
秘密鍵モジュールハッシュ:
openssl rsa -noout -modulus -in mykey.key | openssl sha256 -
CSR モジュラスハッシュ:
openssl req -noout -modulus -in mycsr.csr | openssl sha256 -
証明書モジュールハッシュ:
openssl x509 -noout -modulus -in mycert.crt | openssl sha256
得られたSHA-256ハッシュ文字列を比較します。XNUMXつすべてが同じであれば、キーは CSR、および証明書が一致します。
方法2: 係数を直接比較する
各ファイルの完全な係数を一時テキスト ファイルに出力し、diff ツールを使用して比較します。
openssl rsa -noout -modulus -in mykey.key > key_mod.txt
openssl req -noout -modulus -in mycsr.csr > csr_mod.txt
openssl x509 -noout -modulus -in mycert.crt > cert_mod.txt
# Compare all three files (no output means they match)
diff3 key_mod.txt csr_mod.txt cert_mod.txt
# Or compare just two, e.g., key and certificate (no output means they match)
diff key_mod.txt cert_mod.txt
# Clean up temporary files
rm key_mod.txt csr_mod.txt cert_mod.txt
diff または diff3 が出力を生成しない場合は、係数は同一です。
重要な考慮事項
- RSA 固有: この係数比較法はRSA鍵に特に適用されます。楕円曲線暗号(ECC)鍵には異なる検証手法が必要です。
- セキュリティ: 秘密鍵をオンライン検証ツールにアップロードしないでください。鍵の漏洩を防ぐため、信頼できるマシンでローカルにこれらの検証を実行してください。
- アルゴリズムの進化: 暗号規格は進化を続けています。RSA暗号は依然として一般的ですが、耐量子暗号(PQC)への移行が進んでいます。ここで説明する方法はPQC鍵には適用されません。
- OpenSSL バージョン: セキュリティ パッチと最新のアルゴリズムのサポートのために、最新のサポートされているバージョンの OpenSSL を使用していることを確認してください。
- トラブルシューティング: 係数が一致しない場合は、通常、秘密鍵ファイルが特定の鍵を生成するために使用されたものではないことを意味します。 CSR、またはその証明書が発行されなかった CSR正しいキーファイルを探すか、新しいキーを生成する必要があるかもしれません。CSR ペアにして証明書を再発行します。
SSL.comソリューションを見る
-
無料のSSL証明書: 非商用サイトやテスト環境を安全に保護するには、 90日間無料SSL証明書
-
エンタープライズ SSL: 電子商取引や高信頼シナリオでは、 EVSSL or マルチドメイン 拡張検証を備えた証明書。
-
パートナー プログラム: パートナープログラムに参加する 再販業者の機会、ホワイトラベル ソリューション、および大量の証明書管理のための API 統合にアクセスします。
手伝いが必要?
ご質問やサポートが必要な場合は、SSL.com までお気軽にお問い合わせください。
- Email: Support@SSL.com
- 電話番号: 1-SSL-Certificate (1-775-237-8434)
- ライブチャット: このページの右下からご覧いただけます
SSL.comをお選びいただきありがとうございます!