linux nginx 下配置 https服务

环境:centos7.2_64_nginx1.6.2

  1. 阿里云 产品/安全/SSL证书(https://www.aliyun.com/product/cas?spm=5176.7968328.1146454.1115.6e561232ObuXxR)

 

  2. 先选立即购买,如果已有证书,可选择 SSL 证书控制台 

 

   免费购买

  

    支付订单

  

 

 

   3. 支付确定完成后来到控制台,控制台会有一个 SSL 待申请,点击申请根据提示填入相应信息后,等待审核,审核通过后 ,下载证书即可,

 

      点击下载证书后,选中自己需要的服务器版本

 

 

   4. 下载完成后 得到两个文件,将文件放入到 /

     

  5. 修改 nginx 的配置文件,这里将域名配置信息,全部放在了:/usr/local/webserver/nginx/conf/vhosts/ 目录下

    

 

   6. 到 /usr/local/webserver/nginx/conf/vhosts/ 目录下,修改相应的域名文件

server
{
    listen 80;#监听端口
    server_name localhost;#域名
    index index.html index.htm index.php;
    #root /usr/local/webserver/nginx/html;#站点目录
    root /usr/local/web;
    location ~ .*\.(php|php5)?$
    {
        #fastcgi_pass unix:/tmp/php-cgi.sock;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
    {
        expires 30d;
        # access_log off;
    }
    location ~ .*\.(js|css)?$
    {
        expires 15d;
        # access_log off;
    }
    access_log off;
}

server {
    listen 443;
    server_name www.****.com; # 你的域名
    ssl on;
    root /usr/local/web; # 前台文件存放文件夹,可改成别的
    index index.html index.htm index.php;# 上面配置的文件夹里面的index.html
    ssl_certificate  /usr/local/webserver/nginx/cert/107****.pem;# 改成你的证书的名字
    ssl_certificate_key /usr/local/webserver/nginx/cert/107****.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.htm index.php;
    }
    location ~ .*\.(php|php5)?$
    {
        #fastcgi_pass unix:/tmp/php-cgi.sock;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

server{
    listen 80;
    location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/local/web$fastcgi_script_name;
        # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

 

配置好后重启 nginx 服务器

[root@centos7 sbin]# /usr/local/webserver/nginx/sbin/nginx -s stop
[root@centos7 sbin]# /usr/local/webserver/nginx/sbin/nginx

 

   7. 碰到的问题:

    (1)重启 nginx 时报: nginx: [error] open() "/usr/local/webserver/nginx/logs/nginx.pid" failed (2: No such file or directory)

      解决方法:

         打开 nginx 的配置文件 nginx.conf ,修改 pid   pid /usr/local/webserver/nginx/nginx.pid;  改为 pid /usr/local/webserver/nginx/logs/nginx.pid;

进入 nginx 的 sbin 目录
[root@centos7 ~]# cd /usr/local/webserver/nginx/sbin

生成 pid 文件
[root@centos7 sbin]# ./nginx -c /usr/local/webserver/nginx/conf/nginx.conf

 

    (2)用 https 方式访问 php 文件时,会让其下载

      解决方法:查询资料后,表示时缓存造成的,强制刷新下页面(Ctrl + F5)或 清一下浏览器缓存,重新访问就正常了

 

  参考:

    nginx配置ssl证书实现https访问(https://www.cnblogs.com/tianhei/p/7726505.html)

    【防坑指南】nginx重启后出现[error] open() “/usr/local/var/run/nginx/nginx.pid” failed (https://blog.csdn.net/weixin_39148512/article/details/80196533)

    ssl证书安装完后,https访问后下载index文件,HTTP访问正常的。Nginx ssl设置后自动下载根目录的index.php而不是载入(https://blog.csdn.net/qq_33182756/article/details/80781198)

 

posted @ 2018-12-05 15:12  梦缘&江南~  阅读(395)  评论(0)    收藏  举报