一、前言
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配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
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了,疯狂修改配置(((
发表回复