📅  最后修改于: 2023-12-03 15:11:50.663000             🧑  作者: Mango
在配置 HTTP 服务器时,SSL 证书用于安全地加密数据传输。为了获取 SSL 证书,可以使用电子商务服务提供商或 SSL 证书颁发机构。但也可以使用命令行在服务器上生成自签名 SSL 证书。在本文中,我们将介绍如何使用命令行获取 SSL 证书。
我们可以使用 OpenSSL 工具来在命令行中生成自签名 SSL 证书。以下是如何生成 SSL 证书的步骤:
$ sudo apt-get install openssl
$ openssl genrsa -out server.key 2048
这将生成一个 2048 位的 RSA 密钥,保存在名为 server.key 的文件中。
$ openssl req -new -sha256 -key server.key -out server.csr
在生成 CSR 时,您需要填写有关您与您的公司/组织的信息。您将需要提供有关您的网站域名的信息。
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
这将生成一个有效期为 365 天的自签名证书,保存在名为 server.crt 的文件中。
现在,您可以将生成的 server.key 和 server.crt 文件上传到您的服务器上,并在配置文件中指定它们的位置。
Let's Encrypt 是一个免费的,自动化的证书颁发机构,可以生成 SSL 证书,而无需支付任何费用。以下是在命令行中获取 Let's Encrypt SSL 证书的步骤:
Certbot 是一个 Let's Encrypt 官方推荐的自动化工具,用于生成 SSL 证书。请按照 Certbot 官方文档中的说明进行安装。
$ sudo certbot certonly --standalone -d example.com -d www.example.com
在这个例子中,我们生成了一个一个名为 example.com 的 SSL 证书,并添加了一个额外的证书 www.example.com
。Certbot 将自动验证您是否拥有指定的域名。
Certbot 将 SSL 证书和中间 CA 证书保存在 /etc/letsencrypt/live/example.com/ 目录中。在您的服务器配置文件中,指定 SSLCertificateFile 和 SSLCertificateKeyFile 指向上述证书和密钥文件,重启服务器以应用更改。
以上是使用命令行获取 SSL 证书的两种方法。生成自签名证书适合用于开发或测试服务器。对于正式服务器,建议使用 Let's Encrypt 来获取真实的 SSL 证书。