Nginx配置SSL

发布于 / 教程 / 0 条评论

刚把本站实现了全站强制https访问,Nginx下并且建站程序是wordpress实现的方法网上很多,我也看了许多,踩过了不少坑终于是弄出来了…
给出nginx的config配置吧:

# Settings for a TLS enabled server.
server {
    listen 443;
    server_name localhost;
    ssl on;
    root /usr/www;
    index index.php index.html;
    ssl_certificate   cert/214082939610963.pem;
    ssl_certificate_key  cert/214082939610963.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 / {
        index index.php;
		 try_files $uri $uri/ /index.php?$args;
    }
	 rewrite /wp-admin$ $scheme://$host$uri/ permanent;

	location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

说明一下关键的配置项目:

#root /usr/www;

这是你的网站根目录

#ssl_certificate   cert/214082939610963.pem;

#这是你申请得到的ssl证书保存的路径,我是保存到服务器的Nginx.conf所在目录下的cert目录的。

#ssl_certificate_key  cert/214082939610963.key;

#这是你申请得到的ssl证书key的路径,和上面的证书路径保持一致。

#另外如果你需要强制https访问,就在监听80端口的增加:

 server {
    listen 80;
return 301 https://$host$request_uri;
}

按照这个配置后,还需要进入wordpress后台-设置-常规-WordPress地址(URL)已及 站点地址(URL)该为https格式。
其实上面配置的其他部分有部分就是在重写url以实现静态页面,你只需要在wordpress后台设置-固定链接设置需要的链接格式就能实现伪静态了,比如我就设置的固定链接格式为:/archives/%post_id%.html
这样就实现了nginx下wordpress站点全局https伪静态了,如果你的网站部分页面的小绿锁消失,可以F12打开console查看报错信息,大都是页面引用了非https地址头的资源,在相应地方修改就是。

转载原创文章请注明,转载自: LYLARES'S BLOG » Nginx配置SSL

Not Comment Found