我已经在我的网络服务器上设置了 SSL,现在我需要两个文件:
- 证书
- 证书密钥
如何创建用于测试目的的自签名证书?
答案1
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
。
答案2
如前所述,Ubuntu Server 附带了必要的工具。根据你的服务器版本,你必须查找具体文件我将尝试总结一下自签名证书的生成过程当前 LTS (12.04)。
首先,生成证书签名请求 (CSR) 的密钥:
openssl genrsa -des3 -out server.key 2048
是否输入密码取决于您。如果输入密码,每次使用该证书(重新)启动服务时,您都必须提供密码。另一方面,您可以从安全密钥中创建一个没有密码的“不安全”密钥:
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
最后,使用证书/密钥的应用程序必须进行相应的配置。
答案3
其他答案都很好,但如果由于某种原因您没有列出的工具,或者不想使用它们,我发现一个非常简单的开源工具:
minica -domains localhost
这将创建密钥文件minica-key.pem
和证书文件minica.pem
。创建这些文件的工具只是 Go 语言中的一个文件,没有外部依赖: