12-23-2022, 10:47 AM
个人感觉 openssl 命令行很难用,出了错给出的提示也很不友好,所以总结一些可能遇到问题的点。
首先可以用 openssl list -help 里的命令列出可用的算法,例如列出生成证书用的签名算法:
可以看出我们生成证书的时候要写的算法名字是 ed25519, ed448. 用其他名字如 curve25519, x25519 都会出错。
另外 openssl 生成证书默认都要输入口令,如果不需要,则要加 -noenc 参数。
生成一个自签证书不难,参考 ArchWiki 的做法,一行命令搞定,麻烦的是算法填错名字要折腾很久。
openssl req -x509 -newkey ed448 -days 3650 -keyout key_filename.pem -out cert_filename.pem -noenc -batch
首先可以用 openssl list -help 里的命令列出可用的算法,例如列出生成证书用的签名算法:
引用:$ openssl list -signature-algorithms
{ 1.2.840.113549.1.1.1, 2.5.8.1.1, RSA, rsaEncryption } @ default
{ 1.2.840.10040.4.1, 1.2.840.10040.4.3, 1.3.14.3.2.12, 1.3.14.3.2.13, 1.3.14.3.2.27, DSA, DSA-old, DSA-SHA, DSA-SHA1, DSA-SHA1-old, dsaEncryption, dsaEncryption-old, dsaW
ithSHA, dsaWithSHA1, dsaWithSHA1-old } @ default
{ 1.3.101.112, ED25519 } @ default
{ 1.3.101.113, ED448 } @ default
{ 1.2.156.10197.1.301, SM2 } @ default
ECDSA @ default
HMAC @ default
SIPHASH @ default
POLY1305 @ default
CMAC @ default
可以看出我们生成证书的时候要写的算法名字是 ed25519, ed448. 用其他名字如 curve25519, x25519 都会出错。
另外 openssl 生成证书默认都要输入口令,如果不需要,则要加 -noenc 参数。
生成一个自签证书不难,参考 ArchWiki 的做法,一行命令搞定,麻烦的是算法填错名字要折腾很久。
openssl req -x509 -newkey ed448 -days 3650 -keyout key_filename.pem -out cert_filename.pem -noenc -batch