Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssl 即使指定了SHA2,Java Keytool也会创建SHA1证书_Ssl_Encryption_Cryptography_Certificate_Keytool - Fatal编程技术网

Ssl 即使指定了SHA2,Java Keytool也会创建SHA1证书

Ssl 即使指定了SHA2,Java Keytool也会创建SHA1证书,ssl,encryption,cryptography,certificate,keytool,Ssl,Encryption,Cryptography,Certificate,Keytool,到目前为止,主要出于学习目的,我尝试使用Java的keytool生成SHA2证书。然而,当我生成密钥时,它说证书指纹是SHA1,而不是SHA2 keytool -genkey -alias test_sha2_rsa_key -keyalg RSA -keysize 2048 -keystore .keystore -sigalg "SHA256withRSA" 下面是我列出键时的结果 keytool -list Enter keystore password: Keystore type:

到目前为止,主要出于学习目的,我尝试使用Java的keytool生成SHA2证书。然而,当我生成密钥时,它说证书指纹是SHA1,而不是SHA2

keytool -genkey -alias test_sha2_rsa_key -keyalg RSA -keysize 2048 -keystore .keystore -sigalg "SHA256withRSA"
下面是我列出键时的结果

keytool -list
Enter keystore password:

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

test_sha2_rsa_key, Jul 6, 2016, PrivateKeyEntry,
Certificate fingerprint (SHA1): DD:9E:55:B7:90:9F:91:6C:68:D3:5C:24:E7:D4:45:D1:7D:8C:3A:5A

我读错了,还是做错了

在二进制(DER)编码证书上计算SHA-1指纹。它不包含在证书中,并且正如Dave已经规定的那样,与
tbsCertificate
(证书的“待签名”部分)上的签名无关。实际上,由于它覆盖整个证书,指纹数据中还包括签名算法引用(OID)和签名本身



请注意,使用SHA-1对证书进行指纹识别与使用SHA-1对证书进行签名一样安全。这取决于指纹的使用方式,但原则上,如果(或当)SHA-1损坏,这可能会引入漏洞。

指纹与签名无关。您可以拥有MD5、SHA1、SH256,如果您想要使用SHA512签名的证书的Whirpool和/或Skein指纹,依此类推。请尝试
-list-v
查看证书的(大多数)详细信息,包括sigalg。谢谢。我会更新这个问题。我错了。你是对的。