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)

浙公网安备 33010602011771号