2019-11-07  2024-09-18    570 字  2 分钟

Nginx 配置SSL证书

  • .crt文件:是证书文件,crt是pem文件的扩展名。
  • .key文件:证书的私钥文件(申请证书时如果没有选择自动创建CSR,则没有该文件)。

友情提示: .pem扩展名的证书文件采用Base64-encoded的PEM格式文本文件,可根据需要修改扩展名。

以Nginx标准配置为例,假如证书文件名是a.pem,私钥文件是a.key。

  • 在Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为a.key;
  • 打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,将其修改为 (以下属性中ssl开头的属性与证书配置有直接关系,其它属性请结合自己的实际情况复制或调整) :
 1server {
 2    listen 443;
 3    server_name localhost;
 4    ssl on;
 5    root html;
 6    index index.html index.htm;
 7    ssl_certificate   cert/a.pem;
 8    ssl_certificate_key  cert/a.key;
 9    ssl_session_timeout 5m;
10    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
11    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
12    ssl_prefer_server_ciphers on;
13    location / {
14        root html;
15        index index.html index.htm;
16    }
17}

添加完成后大概是这个样子

 1server{
 2    listen 443;
 3
 4    root /var/www/akvicor.com/html;
 5    index index.php index.html index.htm index.nginx-debian.html;
 6 
 7    server_name akvicor.com www.akvicor.com;
 8    ssl on;
 9
10    ssl_certificate /var/www/cert/akvicor.pem;
11    ssl_certificate_key /var/www/cert/akvicor.key;
12    ssl_session_timeout 5m;
13    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
14    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
15    ssl_prefer_server_ciphers on;
16
17    location / {
18        try_files $uri $uri/ /index.php$is_args$args;
19    }
20
21    location ~ \.php$ {
22        try_files $uri =404;
23
24        include fastcgi.conf;
25        fastcgi_pass 127.0.0.1:9000;
26    }
27}
28
29server {
30    listen 80;
31    listen [::]:80;
32 
33    root /var/www/akvicor.com/html;
34    index index.php index.html index.htm index.nginx-debian.html;
35 
36    server_name akvicor.com www.akvicor.com;
37
38    location / {
39        try_files $uri $uri/ /index.php$is_args$args;
40    }
41
42    location ~ \.php$ {
43        try_files $uri =404;
44
45        include fastcgi.conf;
46        fastcgi_pass 127.0.0.1:9000;
47    }
48}

保存退出,重启 Nginx。

1# 确保您的Nginx文件中没有语法错误
2sudo nginx -t
3# 重启Nginx
4sudo systemctl restart nginx

除另有声明外本博客文章均采用 知识共享 (Creative Commons) 署名 4.0 国际许可协议 进行许可转载请注明原作者与文章出处