【发布时间】:2016-07-08 09:40:45
【问题描述】:
由于我不知道 openssl 命令的参数,所以我习惯于在需要创建自签名证书(用于测试环境)时引用相同的 SO answer。命令如下:
openssl req -x509 -nodes -newkey rsa:2048 -keyout mysite.key -out mysite.crt -days 365
它通常可以工作,例如在我当前的 Ubuntu 15.10 上。今天我正在全新安装 Debian Jessie,但它没有。 Apache 在启动时警告:
[ssl:warn] [pid 1040] AH01906: www.mysite.com:443:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
我在寻找问题的解决方案,发现 an answer in a linux forum 指出应该改用以下内容:
openssl genrsa -des3 -passout pass:x -out mysite.pass.key 2048
openssl rsa -passin pass:x -in mysite.pass.key -out mysite.key
openssl req -new -key mysite.key -out mysite.csr
openssl x509 -req -days 365 -in mysite.csr -signkey mysite.key -out mysite.crt
确实如此,这样 Apache 警告就消失了。
据我了解,这会创建一个受密码保护的密钥,然后删除密码,然后创建一个 CSR,然后使用 CSR 和密钥生成证书。
所以问题是:这个较长的版本有什么作用而较短的没有,为什么在某些情况下(比如今天对我来说)是必要的?
【问题讨论】:
-
没有答案,但它也解决了我在 Debian Jessie 中运行 apache 的问题。
-
既然它是一个自签名证书,你为什么关心它是否给出警告? Apache 仍然使用此配置。
-
@BrianMinton 它不断用警告填充 Apache 错误日志。