苦苦等待数日,站点终于备案完成了。紧接着就是在页脚填写备案号还有SSL证书的安装。

作为小白的我直接查看了阿里云的帮助文档,由于我的站点并不是独立的Nginx服务器,所以直接选择步骤2的配置方式:为Nginx虚拟主机配置SSL证书。

以下是安装步骤:

  1. 申请完证书后下载得到Nginx证书文件,解压后是两个文件(有些网站提供crt和key文件也是可以的,PEM格式的证书文件是采用Base64编码的文本文件,可以根据需要将证书文件修改成其他格式)。

crt and key

  1. 用Xshell登录服务器并打开Xftp,打开/etc/ssl,把pem和key这两个文件复制进去。
  2. 打开Nginx的配置文件,不同版本、环境下的Nginx配置文件可能在不同的地方,这里以我为例:/etc/nginx
    在第一个server {}后添加以下代码并保存。

     server {
         listen 443 ssl;
         #默认443端口不要更改
         #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on
         server_name localhost; #不要更改为自己的域名
         root /usr/share/nginx/html/wordpress; #替换成站点所在目录
         index index.html index.htm index.php;
         ssl_certificate /etc/ssl/xxx.pem; #将xxx.pem替换成已上传的证书文件的名称
         ssl_certificate_key /etc/ssl/xxx.key; #将xxx.key替换成已上传的证书密钥文件的名称
         ssl_session_timeout 5m;
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
         #表示使用的加密套件的类型
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
         ssl_prefer_server_ciphers on;
         location / {
             root   /usr/share/nginx/html/wordpress; #替换成站点所在目录
             index  index.html index.htm index.php;
             try_files $uri $uri/ /index.php?$args; #伪静态规则
             if (-f $request_filename/index.html){
             rewrite (.*) $1/index.html break;
             }
             if (-f $request_filename/index.php){
             rewrite (.*) $1/index.php;
             }
             if (!-f $request_filename){
             rewrite (.*) /index.php;
             }
         }
         location ~ \.php$ {
             root           /usr/share/nginx/html/wordpress; #替换成站点所在目录
             proxy_pass     https://127.0.0.1;
             fastcgi_pass   unix:/run/php-fpm/www.sock;
             fastcgi_index  index.html;
             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
             include        fastcgi_params;
         }
         rewrite /wp-admin$ $scheme://$host$uri/ permanent; #伪静态规则
     }
  3. 设置HTTP请求自动跳转HTTPS,在站点目录打开.htaccess文件(如果没有,需要新建该文件),并添加rewrite语句。

    RewriteEngine On
    RewriteCond %{HTTP:From-Https} !^on$ [NC]
    RewriteCond %{HTTP_HOST} ^(www.)?yourdomain.com$ [NC] #将yourdomain.com替换成证书绑定的域名。
    RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R=301,L] #将yourdomain.com替换成证书绑定的域名。
  4. 重启Nginx。
  5. 在服务器提供商开放443端口。

至此,SSL证书的部署完成,你可以用https://来访问你的站点了。

标签: Nginx, SSL

分类: 学点技术, Nginx

添加新评论