代潇瑞博客

thinkphp+nginx ssl(https)的配置

| 点击次数:11850

thinkphp项目在nginx中配置ssl的配置参考如下(其他的大同小异):


1、在nginx目录下创建cert目录(一般都有。其实也并非一定是cert,只是因为习惯和为了更好管理吧),然后将证书(.pem和.key的两个文件)上传到cert目录中。


2、打开nginx的配置,在http下加入以下的配置,注意“root”、“server_name”和“fastcgi_pass”请以实际为准。


server {
    listen 443;
    server_name www.daixiaorui.com;
    ssl on;
    root /var/html/daixiaorui;
    index index.php index.html;
    ssl_certificate   cert/www_daixiaorui_com.pem;
    ssl_certificate_key  cert/www_daixiaorui_com.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.html index.php;
        #如果文件不存在则尝试TP解析
        try_files  $uri /$uri/index.html /index.php$uri;
    }

    location ~ .+\.php($|/) {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;

        #设置PATH_INFO,注意fastcgi_split_path_info已经自动改写了fastcgi_script_name变量,
        #后面不需要再改写SCRIPT_FILENAME,SCRIPT_NAME环境变量,所以必须在加载fastcgi.conf之前设置
        fastcgi_split_path_info  ^(.+\.php)(/.*)$;
        fastcgi_param  PATH_INFO $fastcgi_path_info;
        #加载Nginx默认"服务器环境变量"配置
        include        fastcgi.conf;
    }

    location ~ /\.git {
        deny  all;
    }
}


3、保存配置后,重启nginx。


4、浏览器打开配置的地址,进行https(SSL证书)测试,如果有绿色小锁和“安全”字样,表示一切正常,如下图所示(chrome为例,其他浏览器会有不同)。


https安全小锁提示


如果没有,表示页面中可能引用了非https的资源,具体可以按F12在console选项卡中查看具体信息。


F12 console


【相关推荐】

触屏版 | 电脑版

Copyright © 2013 代潇瑞博客手机版

QQ: 446673330

粤ICP备13071969号-1