我已经在网络服务器上设置了SSL,现在需要两个文件:
- 证书
- 证书密钥
如何创建用于测试目的的自签名证书?
我已经在网络服务器上设置了SSL,现在需要两个文件:
如何创建用于测试目的的自签名证书?
Answers:
Ubuntu,甚至是“最小”的味道,都预装了ssl-cert
软件包,这意味着您无需执行任何操作。
您要查找的文件已经在您的系统上:
/etc/ssl/certs/ssl-cert-snakeoil.pem
/etc/ssl/private/ssl-cert-snakeoil.key
高级:
如果出于某种原因需要创建新证书,则可以运行
sudo make-ssl-cert generate-default-snakeoil --force-overwrite
如果要更改证书的到期日期,可以在处操作make-ssl-cert脚本/usr/sbin/make-ssl-cert
。像124左右有一行类似于:
openssl req -config $TMPFILE -new -x509 -nodes \
您可以在其中添加-days
参数来更改到期日期:
openssl req -config $TMPFILE -new -days 365 -x509 -nodes \
可以在的手册页中req
找到更多选项。
/usr/share/ssl-cert/ssleay.cnf
。
www.test.mydomain.com
使用hostname
VM CLI中的命令将VM的主机名设置为与测试url(例如)匹配。然后根据您的建议重新生成密钥,使用--force-overwrite
,密钥的通用名称(CN)与测试URL匹配。最后,在主机上,将密钥安装为“受信任的根证书颁发机构”(在Chrome的“设置” /“高级”中),这给了我梦green以求的绿色地址栏。
make-ssl-cert
命令为我节省了一天的时间!
如前所述,Ubuntu Server附带了必要的工具。根据服务器的版本,您必须查找特定的文档。我将尝试总结当前LTS(12.04)的自签名证书生成过程。
首先,您为证书签名请求(CSR)生成密钥:
openssl genrsa -des3 -out server.key 2048
是否输入密码取决于您。如果这样做,每次(重新)使用该证书启动服务时,都必须提供密码短语。Otoh您可以创建一个“不安全”密钥,而无需从安全密钥中输入密码:
openssl rsa -in server.key -out server.key.insecure
# shuffle the key names to continue without passphrases
mv server.key server.key.secure
mv server.key.insecure server.key
现在,您将根据密钥创建CSR。使用CSR和密钥,可以生成自签名证书:
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
最后一步包括在Debian / Ubuntu中通常在/etc/ssl
以下位置安装证书和密钥:
sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private
最后,必须相应地配置使用证书/密钥的应用程序。