Openssl

如何通過命令行將多個電子郵件地址添加到 SSL 證書?

  • December 28, 2018

我知道可以通過添加/修改其中的SubjectAltName條目來實現openssl.cnf,但是有沒有辦法做到這一點而不必每次都修改該文件?

您不必openssl.cnf以任何方式處理文件。

以下命令展示如何使用 SAN 為電子郵件生成自簽名證書nobody@example.com

openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
 -keyout example.key -out example.crt -subj '/CN=Nobody' \
 -extensions san \
 -config <(echo '[req]'; echo 'distinguished_name=req';
           echo '[san]'; echo 'subjectAltName=email:nobody@example.com')

這裡的訣竅是包含一個[req]足以讓 OpenSSL 在沒有其主openssl.cnf文件的情況下相處的最小部分。

在 OpenSSL ≥ 1.1.1 中,這可以縮短為:

openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
 -keyout example.key -out example.crt -subj '/CN=Nobody' \
 -addext 'subjectAltName=email:nobody@example.com'

這裡我們使用的是新-addext選項,所以我們不再需要-extensionsand-config了。

不要忘記驗證生成證書的內容:

openssl x509 -noout -text -in example.crt

另請參閱:https ://security.stackexchange.com/a/198409/133603和https://stackoverflow.com/a/41366949/19163

引用自:https://unix.stackexchange.com/questions/63209