nginx和wordpress配置https
网站开启https的重要性
https对于一个网站来说还是很重要的,数据加密,提高网站安全性,提升SEO排名等.....,这里就不多说了,反正要是想自己的网站能被搜索引擎更友好的对待,开启https是必须的
申请免费的SSL证书
我的域名是在阿里云申请的,所以直接在阿里云上面申请下载一个SSL证书就行了,其他的域名服务商怎么操作我不清楚,估计都是差不多的
这里在填写 '要申请的域名' 的时候感觉有点小坑,提示的是填写*号可以匹配所有的二级域名,结果填*号都没法儿提交,然后我的解决方法就是填写www(www.xxxxx.com其实是等价于xxxxx.com)
可以在自己的证书列表中查看申请进度,一般来说几分钟就能搞定
下载上传SSL证书
点击下载会出现这个界面,我的网站是nginx+wordpress,所以下载nginx类型的,其他类型请根据实际情况进行选择。
不管自己是不是第一次配置SSL,一定要看看帮助文档(点击帮助链接),文档记录了详细步骤
这是从帮助文档中复制的nginx的配置信息
server {
listen 443; server_name localhost; ssl on; root html; index index.html index.htm; ssl_certificate cert/a.pem; ssl_certificate_key cert/a.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 html; index index.html index.htm; }
}
证书下载解压后有两个文件 xxxxxxxx.pem 和 xxxxxxx.key,将xxxx.pem修改为a.crt,xxxx.key修改为a.key(因为从文档复制的nginx配置信息中就是以a来命名这两个文件的),至于为什么要修改pem为crt官方文档中有解释
然后在nginx的conf目录下新建文件夹cert,将这个两个文件上传。
其实根据文档的要求是在nginx的安装目录下新建cert文件夹,但是经过的我的多次报错之后(在conf/cert目录下找不到文件),我把cert文件夹放到了conf目录下
配置nginx
调整一下从帮助文档中复制的nginx配置信息,a.pem修改为a.crt,修改root的路径root /home/wwwroot/wordpress,这个路径是访问wordpress的路径,再删掉一些配置,将server加到nginx.conf中,在nginx的sbin目录中执行 ./nginx -s reload重新加载nginx配置信息就OK了
server {
listen 443; ssl on; root /home/wwwroot/wordpress;; index index.html index.htm; ssl_certificate cert/a.crt; ssl_certificate_key cert/a.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;
}
开启443端口
在服务器的安全组配置中开启443端口,这样https的访问就没问题了https://jiafeiblog.com
将http的连接重定向至https
网站虽然开启了https,但是默认的http还是存在的,并且它不会自动跳转至https的链接,所以需要配置nginx让其重定向到https链接
在监听80端口的server中配置
rewrite ^(.*) https://jiafeiblog.com;
其他配置都是在搭建wordpress的时候默认的
完成
至此,nginx网站开启https就搞定了
发表回复