サイトに発行されたOpenSSL証明書がSHA-1またはSHA-256かどうかを確認するにはどうすればよいですか?
OpenSSL証明書を使用しているイントラネットサイトはたくさんありますが、証明書のプロパティを確認すると、次のように混乱します。
インターネットエクスプローラ:
署名アルゴリズム:sha1RSA
署名ハッシュアルゴリズム:sha1
Firefox:
署名アルゴリズム:RSA暗号化を使用したPKCS#1 SHA-1
指紋の下に、SHA256とSHA-1の両方が表示されます
OpenSSLコマンドを使用しようとしましたが、何らかの理由でエラーが発生し、ファイルに書き込もうとすると、出力ファイルが作成されますが、それは空白です。
openssl.exe s_client -connect mysite:443 > CertInfo.txt && openssl x509 -text -in CertInfo.txt |
find "Signature Algorithm"
基本的に、証明書が本当にSHA-1であることを検証する必要があり、それをSHA256またはSHA-2にアップグレードする必要があります。
LinuxとWindowsのコマンドは次のとおりです。
また、出力ラインが2倍になったことを心配する必要はありません(Signature Algorithm:
...)。それは予想されます(そして必須です)。
$ echo '' | openssl s_client -connect sha1.badssl.com:443 -servername sha1.badssl.com 2>/dev/null | openssl x509 -noout -text | grep 'Signature Algorithm'
Signature Algorithm: sha1WithRSAEncryption
Signature Algorithm: sha1WithRSAEncryption
$ echo '' | openssl s_client -connect sha256.badssl.com:443 -servername sha256.badssl.com 2>/dev/null | openssl x509 -noout -text | grep 'Signature Algorithm'
Signature Algorithm: sha256WithRSAEncryption
Signature Algorithm: sha256WithRSAEncryption
c:\>echo " " | openssl.exe s_client -connect sha1.badssl.com:443 -servername sha1.badssl.com 2>nul | openssl.exe x509 -noout -text | findstr /C:"Signature Algorithm"
Signature Algorithm: sha1WithRSAEncryption
Signature Algorithm: sha1WithRSAEncryption
c:\>echo " " | openssl.exe s_client -connect sha256.badssl.com:443 -servername sha256.badssl.com 2>nul | openssl.exe x509 -noout -text | findstr /C:"Signature Algorithm"
Signature Algorithm: sha256WithRSAEncryption
Signature Algorithm: sha256WithRSAEncryption
計算値 です。