站点SSL证书的安装
苦苦等待数日,站点终于备案完成了。紧接着就是在页脚填写备案号还有SSL证书的安装。
作为小白的我直接查看了阿里云的帮助文档,由于我的站点并不是独立的Nginx服务器,所以直接选择步骤2的配置方式:为Nginx虚拟主机配置SSL证书。
以下是安装步骤:
- 申请完证书后下载得到Nginx证书文件,解压后是两个文件(有些网站提供crt和key文件也是可以的,PEM格式的证书文件是采用Base64编码的文本文件,可以根据需要将证书文件修改成其他格式)。
-
用Xshell登录服务器并打开Xftp,打开/etc/ssl
,把pem和key这两个文件复制进去。
-
打开Nginx的配置文件,不同版本、环境下的Nginx配置文件可能在不同的地方,这里以我为例:/etc/nginx
在第一个server {}
后添加以下代码并保存。
Text Only |
---|
| 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; #伪静态规则
}
|
- 设置HTTP请求自动跳转HTTPS,在站点目录打开
.htaccess
文件(如果没有,需要新建该文件),并添加rewrite
语句。
Text Only |
---|
| 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替换成证书绑定的域名。
|
-
重启Nginx。
-
在服务器提供商开放443
端口。
至此,SSL证书的部署完成,你可以用https://
来访问你的站点了。