Nginx 使用 HTTPS(准备证书和私钥)

文章目录

  • Nginx生成自签名证书和配置Nginx HTTPS(准备证书和私钥)
    • 准备证书和私钥

Nginx生成自签名证书和配置Nginx HTTPS(准备证书和私钥)

准备证书和私钥

  1. 生成私钥
openssl genrsa -des3 -out server.key 2048

这会生成一个加密的私钥文件server.key。

执行openssl genrsa命令时,使用-des3参数会要求设置一个密码来加密生成的私钥。为了安全起见,密码应该足够复杂和长。使用-des3生成受密码保护的私钥也是更安全的做法。
另外,在后续生成证书过程中,需要输入同样的密码才能使用这个受密码保护的私钥。

  1. 生成证书签名请求(CSR)

openssl req -new -key server.key -out server.csr
按提示输入域名、公司信息等,生成CSR文件。

  1. 生成自签名证书
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

这里将有效期设置为3650天,约等于10年。

  1. 将私钥改为不加密
openssl rsa -in server.key -out server.key

这样就可以得到server.crt证书文件和server.key私钥文件。

在生成私钥时使用 -des3 参数会给私钥设置一个密码保护,这样私钥被盗用的风险会降低。
但是在 Nginx 中直接使用带密码的私钥会比较麻烦,每次启动都需要输入解密密码。
所以这里的第4步“将私钥改为不加密”的目的是移除私钥的密码保护,使其变成未加密的普通私钥。

好处:

  1. 省去了每次启动Nginx都需要输入私钥解密密码的麻烦。

  2. 简化了Nginx的配置和启动流程。

  3. 避免了操作时输入错误密码导致Nginx启动失败的问题。

  4. 内存中载入的私钥不再被加密,可以明文使用,增加一些效率。

  5. 在Nginx中配置使用

server {
  listen 443 ssl; 
  server_name www.example.com;

  ssl_certificate /path/to/server.crt;
  ssl_certificate_key /path/to/server.key;
}

将证书和私钥文件路径配置到Nginx配置中,就可以使用HTTPS了。

你可能感兴趣的:(Linux,C/C++,安全相关,nginx,https,运维)