【发布时间】:2021-03-18 10:16:34
【问题描述】:
有时我会在本地机器上测试 SSL 网站。我厌倦了使用自签名证书并将它们添加到我在 Mac(浏览器或其他操作系统)上的 KeyChain。此外,Chrome 总是抱怨它们。此外,这种方法与生产中使用的方法有些不同。
我发现这篇文章非常有用,您可以创建一次自己的 CA 根证书,将其添加到您的钥匙串中,然后使用 CA 私钥为我的本地网站签署数以千计的 SSL 测试证书。 https://deliciousbrains.com/ssl-certificate-authority-for-local-https-development/
本教程效果很好,但我想自动化它。对于 CA 根证书,这很简单,我只是使用了 -subj 选项,如下所示:
openssl req -x509 -new -nodes -key /certs/myCA.key -sha256 -days 1825 -subj "/C=$CA_COUNTRY/ST=$CA_STATE/L=$CA_CITY/O=$CA_ORGANIZATION/CN=$CA_COMMON_NAME" -out /certs/myCA2.pem
环境变量(CA_COUNTRY、CA_STATE、CA_CITY、CA_ORGANIZATION、CA_COMMON_NAME)是从外部文件中读取的。
但是,当我尝试为网站证书复制相同的内容时,我无法获得相同的结果。命令是这样的:
openssl x509 -req -in dev.deliciousbrains.com.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out dev.deliciousbrains.com.crt -days 825 -sha256 -extfile dev.deliciousbrains.com.ext
-subj 选项似乎不起作用。有没有办法将上面的信息传递给这个命令并避免交互式问题?
【问题讨论】:
标签: ssl openssl ssl-certificate x509certificate