当前位置: 首页>>技术问答>>正文


如何创建self-signed SSL证书?

, ,

问题描述

我在我的网络服务器上设置了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

最后,必须相应地配置使用证书/密钥的应用程序。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1270.html,未经允许,请勿转载。