前段时间公司网站要求加上HTTPS安全CA证书,公司服务器全是阿里云服务器,并且配有负载均衡,所以选择直接在阿里云购买CA证书,阿里云有一种证书可以免费试用一年,决定申请此证书,阿里云证书需要验证,阿里云有详细教程
配置之后发现所有在HTTPS访问的网站下的所有连接都需要是HTTPS访问,所以还是需要自己进行配置
配置方案记录一下,方便以后自己配置查找
环境
Centos6.8 Nginx yum安装
首先要将下载的CA证书上传到服务器上面 , 然后打开/etc/nginx/conf.d/自己配置文件名.conf
然后将下面代码添加进去
ssl_certificate ??/etc/nginx/conf.d/214521058020911.pem;#此处为安全成熟的pem文件需要根据自己的实际情况配置路径 ???ssl_certificate_key ?/etc/nginx/conf.d/214521058020911.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;
添加后如下显示
server { ???listen ??????443; ???server_name ?自己的域名; ???#charset koi8-r; ???#access_log ?/var/log/nginx/host.access.log ?main; ???location / { ??????try_files $uri $uri/ /index.php?$query_string; ??????client_max_body_size 1000m; ???} ???root ??项目目录; ???index ?index.php; ???ssl_certificate ??/etc/nginx/conf.d/214521058020981.pem; ???ssl_certificate_key ?/etc/nginx/conf.d/214521058020981.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;.....以下省略
然后在后来配置Windows服务器的时候,用的PHPStudy集成环境配置发现还需要加入
SSL ?on
重启之后生效。
网站本身需要一个实时数据推送,所以我采用了node.js的socket.io模块进行推送,然后找到配置方法如下
var http = require(‘http‘);var https = require(‘https‘);var fs = require(‘fs‘);var options = { ???key: fs.readFileSync(‘./214521058020981.key‘),//配置自己的证书 ???cert: fs.readFileSync(‘./214521058020981.pem‘)//同上}var server = https.createServer(options).listen(监听端口);var io = require(‘socket.io‘)(server);
此为配置方法,引入时用https://自己域名进行引入即可
注意:同一个服务器无法进行node.js和Nginx同时配置HTTPS,因为占用同一个443端口发生冲突,至于是不是可以采用Nginx来为node.js提供Https访问,我没试验
Nginx 配置HTTPS 与Node.js 配置HTTPS方法
原文地址:https://www.cnblogs.com/Gasg/p/8496662.html