一、前言
0202年了,你还在用http协议吗?
1.http协议的缺点
- 通信过程未加密,数据明文传输,也就是说你浏览的东西有可能会被他人窃听。
- 不验证来源可靠,你浏览的东西可能并不是服务提供商给你的。
- 数据完整性无法保证,数据可能遭到篡改。(在某个地方的ISP经常干这种事)
2.解决办法
但是这并不可怕,因为我们还有https,即多了一层SSL加密,这样我们通信的数据就被加密了。(虽然https也不是十全十美的,但是有hsts啊,不过这是后话了,在这里就不讲了)
那么我们就需要一个SSL证书来给我们的站点。但是并不是说我们自己随便生成一个证书就可以的,只有来源可靠的证书才会被用户的浏览器承认。我们可以去购买证书,或者用Certbot来白嫖一个证书。
二、签一个SSL证书
大家可以看看这篇文章:使用Certbot签SSL
三、给WordPress站点安排上https
1.修改Nginx配置
接下来我们需要web服务器程序的配置。
这里lnmp的Nginx配置路径在/usr/local/nginx/conf/下。
分享一下我的Wordpress Nginx配置
server
{
listen 80;
listen [::]:80;
server_name wordpress.doamin.com;#这里修改成你的域名
root /home/wwwroot/wordpress_path;#这里修改成你的网站路径
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$args;
}
include rewrite/none.conf;
#error_page 404 /404.html;
# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
include enable-php-pathinfo.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log /home/wwwlogs/site_domain.log;#这里修改成你的日志路径
}
server
{
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wordpress.doamin.com;#这里修改成你的域名
#SSL 记得修改成自己的pem路径
ssl_certificate /ssl_certificate_path/fullchain.pem;
ssl_certificate_key /ssl_certificate_key_path/privkey.pem;
ssl_trusted_certificate /ssl_trusted_certificate_path/chain.pem;
}
修改完后记得[平滑]重启一下Nginx~
2.安装插件
没错,还要安装一下插件,否则WP后台就GG了。
安装Really Simple SSL这个插件,可以非常轻松的解决问题。
包括图标等资源貌似也会自动https,太方便辣!
四、后记
WordPress这个后台ssl问题真的折腾死我了。。。一度怀疑是不是我不会用Nginx了,疯狂修改配置(((
发表回复