问题描述
我在我的网络服务器上设置了SSL,现在我需要两个文件:
-
证书
-
证书密钥
如何为测试目的创建self-signed证书?
最佳解决办法
Ubuntu,甚至是’minimal’风味,都附带了ssl-cert
包pre-installed,这意味着您无需做任何事情。
您正在寻找的文件已经在您的系统上:
/etc/ssl/certs/ssl-cert-snakeoil.pem
/etc/ssl/private/ssl-cert-snakeoil.key
高级:
如果由于某种原因需要创建新证书,则可以运行
sudo make-ssl-cert generate-default-snakeoil --force-overwrite
如果要更改证书的到期日期,可以在/usr/sbin/make-ssl-cert
处理make-ssl-cert脚本。在124左右,有一条与此类似的线:
openssl req -config $TMPFILE -new -x509 -nodes \
您可以通过添加-days
参数来更改到期日期:
openssl req -config $TMPFILE -new -days 365 -x509 -nodes \
更多选项可在req
的手册页中找到。
次佳解决办法
如前所述,Ubuntu Server附带了必要的工具。根据您的服务器版本,您必须查找specific documentation。我将尝试总结the current LTS (12.04)的self-signed证书生成过程。
首先,您为证书签名请求(CSR)生成密钥:
openssl genrsa -des3 -out server.key 2048
是否输入密码短语取决于您。如果您这样做,每次(重新)启动服务时都会使用该证书,您必须提供密码。 Otoh你可以创建一个”insecure”密钥而不需要来自安全密码的密码:
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和密钥,可以生成self-signed证书:
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
最后,必须相应地配置使用证书/密钥的应用程序。