機械翻訳について

OpenSSLを使用した証明書のデバッグおよびテスト

次に、OpenSSLコマンドを使用して既存の証明書を操作し、インフラストラクチャをデバッグおよびテストする方法を示します。 ここに示した例は、包括的なものではなく、既存のOpenSSLマニュアル・ページを補足するためのものです。

証明書の調査

  • X.509証明書に含まれる情報を表示します:
    sudo openssl x509 -text -noout -in server.crt
  • 証明書のSHA1フィンガープリントを表示します:
    sudo openssl x509 -sha1 -noout -fingerprint -in server.crt
  • 署名された証明書のシリアル番号を表示します。
    sudo openssl x509 -serial -noout -in server.crt

秘密キーが証明書と一致することの確認

キーと証明書のモジュラスと公開指数の部分は一致する必要があります。 これらの値は、多くの場合、長く、確認が困難です。 キーと証明書の係数を比較する最も簡単な方法は、それぞれにSHA256ハッシュを作成し、かわりにそれらのハッシュを比較することです。たとえば:

sudo openssl x509 -noout -modulus -in server.crt | openssl sha256
sudo openssl rsa -noout -modulus -in server.key | openssl sha256

CSRのモジュラスを次のようにチェックして、キーまたは証明書と一致するかどうかを確認することもできます:

sudo openssl req -noout -modulus -in server.csr | openssl sha256

キーまたは証明書形式の変更

  • ブラウザでダウンロードするために、ルート証明書をWebサイトに公開できる形式に変換します。
    sudo openssl x509 -in cert.pem -out rootcert.crt
  • base64でエンコードされた証明書(PEMまたはRFC 1421とも呼ばれます)をバイナリDER形式に変換します。
    sudo openssl x509 -in cert.pem -outform der -out certificate.der
  • エンティティとそのCAのbase64でエンコードされた証明書を、単一のPKCS7形式の証明書に変換します。
    sudo openssl crl2pkcs7 -nocrl -certfile entCert.cer -certfile CACert.cer -out certificate.p7b 

証明書の一貫性と有効性の確認

署名機関、署名チェーン、有効期間を含む証明書を検証します。

sudo openssl verify cert.pem

キーの復号化とパスフレーズの追加または削除

  • 暗号化されたキー・ファイルを作成し、そのファイルが暗号化されていない、またはパスフレーズが必要ないと判断した場合は、次のコマンドを実行してファイルを復号化できます。
    sudo openssl rsa -in private.key -out unencrypted.key
            
    Enter pass phrase for private.key:
    writing RSA key

    private.keyに格納されている暗号化されたキーのパスフレーズの入力を求められ、同じキーの暗号化されていないバージョンがunencrypted.keyファイルに書き込まれます。

  • 暗号化されていないキーを暗号化し、それを保護するためにパスフレーズを追加する場合は、次のコマンドを実行します。
    sudo openssl rsa -aes256 -in unencrypted.key -out private.key

    前述の例では、AES暗号は256ビット・キーとともに使用されます。 このコマンドでは、パスフレーズを入力して検証するよう求められます。 新しい暗号化されたキー・ファイルがprivate.keyに書き込まれます。

    ノート:

    秘密キーのパスフレーズは、対応する公開キーへの影響なく、いつでも追加または削除できます。 パスフレーズを追加すると、不正なまたは悪意のあるユーザーが使用できないように秘密キーが保護される一方、不便な点として、秘密キーを使用するサービスを起動または再起動する場合は常に手動介入が必要になります。 キーからパスフレーズを削除する場合は、パスフレーズが厳密なアクセス権で格納されていることと、必要としないシステムにコピーされていないことを確認してください。

OpenSSLを使用したSSL/TLS構成済サービスのテスト

  • ポート443でリスニングするサーバーを構成して、自己署名証明書をテストします。
    sudo openssl s_server -accept 443 -cert cert.pem -key prikey.pem -www
  • 接続のクライアント側をテストします。 このコマンドは、証明書を含む接続に関する情報を返します。 接続が確立されると、プロンプトでHTTPリクエストまたはコマンドを直接入力できます。
    sudo openssl s_client -connect server:443 -CAfile cert.pem
  • サーバーから証明書を抽出します:
    sudo echo | openssl s_client -connect server:443 2>/dev/null | \
    sed -ne '/BEGIN CERT/,/END CERT/p' |sudo tee svrcert.pem