![](/img/trans.png)
[英]How to generate a self-signed SSL certificate using OpenSSL? [closed]
[英]How to make self-signed RSA_PSS_RSAE certificate using Openssl
我想制作如下證書。 rsassaPss 作為簽名算法,rsaEncryption 作為公鑰算法。
Certificate:
Data:
Version: 3 (0x2)
....
Signature Algorithm: rsassaPss
Hash Algorithm: sha1 (default)
Mask Algorithm: mgf1 with sha1 (default)
Salt Length: 20 (default)
Trailer Field: 0xbc (default)
....
Subject: .....
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
.....
我嘗試了以下方法,但結果相同。
openssl genpkey -algorithm RSA-PSS -out test1\ca2.key.pem -pkeyopt rsa_pss_keygen_md:sha1 -pkeyopt rsa_pss_keygen_mgf1_md:sha1 -pkeyopt rsa_pss_keygen_saltlen:20
openssl req -x509 -new -nodes -key test1\ca2.key.pem -days 1024 -out test1\ca2.crt.pem
openssl req -new -newkey rsa-pss -pkeyopt rsa_keygen_bits:2048 -sigopt rsa_mgf1_md:sha256 -passout pass:123456 -sha256
openssl x509 -req -in test3\rootreq.pem -passin pass:123456 -sha256 -days 14600 -extensions v3_cn -signkey test3\rootkey.pem -out test3\rootcert.pem
誰能幫我?
要獲得您顯示的內容,請將密鑰文件創建為 v1.5,但使用 PSS 簽署證書。 對於自簽名證書:
# in separate steps either of
openssl genrsa 2048 >keyfile
openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:2048 >keyfile
# in either case add encryption if desired; your Q is inconsistent about that
# then
openssl req -new -x509 -key keyfile -sigopt rsa_padding_mode:pss -sha1 -sigopt rsa_pss_saltlen:20 -out certfile
# add options for subject, days, extensions, or other config as desired
# for 1.0.0 & 1.0.1 -sha1 was default for hash and can be omitted;
# in all versions MGF1 hash defaults to data hash
# but saltlen defaults to 0xEA -- I'm not sure why -- and must be set
# in one step
openssl req -new -x509 -newkey rsa:2048 -keyout keyfile -sigopt rsa_padding_mode:pss -sha1 -sigopt rsa_pss_saltlen:20 -out certfile
也就是說,我基本同意馬特的評論; 如果這是您的實際目標,這不一定是 TLS1.3 rsa_pss_rsae 簽名所需要的。 首先,自簽名、root 或其他錨定證書上的簽名根本不利於安全,通常甚至不會被檢查; RFC8446 4.2.3 明確允許該簽名不滿足 sigalgs。 (雖然我認為這是一個錯誤;考慮到規范的其余部分,從 sigalgs或 sigalgs_cert 中原諒它會更有意義,以適用者為准。)
其次,如果這是一個重要的簽名——在由(不同的)CA 頒發的證書上,如果你願意,OpenSSL 也可以這樣做,但不同的是——那么使用 SHA-1 將非常糟糕。 RFC8446允許證書簽名使用SHA-1只能作為最后的手段-對任何公鑰算法(RSAv1.5,RSA-PSS,ECDSA,EdDSA) -和一些實現使用它們不信任證書永遠以下做“粉碎”和現在“混亂”(谷歌,或查看 crypto.SX 和 security.SX 了解詳細信息)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.