HTTP升级HTTPS配置了三次,我都流汗了
-
Windows配置HTTPS升级
- 当前没有SSL安全证书,需要OpenSSL生成一个免费的证书
- 在nginx的目录下创建ssl文件,用来存储证书
-
HTTPS升级需要的证书有crt(CA认证后的证书,Windows下是crt),key(证书使用秘钥),csr(证书的请求文件,申请证书的)
- CA的crt生成:
openssl req -new -x509 -key server.key -out ca.crt -days 3650
- 创建私钥key:
openssl genrsa -des3 -out server.key 2048 //当前输入的密码要记住,以后会用
- 无论你用 DV 还是 OV 生成私钥,都需要填写一些基本信息,这里我们假设如下:
- 域名,也称为 Common Name,因为特殊的证书不一定是域名:example.com
- 组织或公司名字(Organization):Example, Inc.
- 部门(Department):可以不填写,这里我们写Web Security
- 城市(City):Beijing
- 省份(State / Province):Beijing
- 国家(Country):CN
- 加密强度:2048 位,如果你的机器性能强劲,也可以选择 4096 位
- csr生成:
openssl req -new -key server.key -out server.csr
- crt生成
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt
- 证书合成
cat server.key server.crt > server.pem
- nginx配置
listen 443 ssl; server_name _; ssl_certificate D:/nginx-1.5.11/ssl/lee.crt; ssl_certificate_key D:/nginx-1.5.11/ssl/lee.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on;
-
Linux配置HTTPS升级
- 查看nginx是否在运行
ps -ef|grep nginx
- 启动nginx
./nginx -s reload //(重启nginx需要切换到sbin目录)
- 查看nginx是否支持ssl
./nginx -v //查看是否有‘-with-http-ssl-module’字段
- 不支持,安装
make && make install ./configure --prefix=/user/local/nginx --with-help_stub_status_module --with-help_ssl_module
- 安装命令
sudo apt-get install openssl
- 复制文件,进入到当前文件目录
sudo cp -v 源文件 ./
- 删除文件
rm //提示Permission denied,说明没有权限,使用sudo rm即可
- 切换权限
su -
- linux发送get接口
wget 接口
- 编辑文件
nano 文件目录 Ctrl+c 保存 y 退出
error处理
-
错误提示:(10060)The system cannot find the file specified
-
原因分析(一):
- 在网上查找,是因为nginx服务器上的启动操作造成的,因为我是在远程连接上启动的,或许会产生一个会话id,这个id应该是与服务器上启动的id不一致
-
解决办法:
- 主要造成的原因应该是在远程桌面上对nginx的启动和终止操作不正当,导致远程服务器不能正常结束特定进程
-
原因分析(二):(申请证书:jks文件,key文件,crt文件)
- 可能是证书信息不全面
-
解决办法如下:
//失败 ssl_certificates jks; ssl_certificates_key key; //通了,jks转pem,暂时没有复现崩溃的现象(可以解决火狐问题) ssl_certificates .pem; ssl_certificates_key .key; //通了,jks转pem,pem生成crt可key文件,出现崩溃的现象(没有解决火狐问题) ssl_certificates .crt; ssl_certificates_key .key; ssl_client_certificate ca.crt; //通了,jks转pem,pem生成crt可key文件,bundle.crt和crt拼成new.crt,出现崩溃的现象(可以解决火狐问题) ssl_certificates new.crt; ssl_certificates_key .key; ssl_client_certificate ca.crt;
-
原因分析(三):
- 启动多个线程
-
解决办法:
- 关闭所有线程重新启动
虽然网上有很多例子,可能是自己的原因,需要做好多操作,查询好多内容之后才将正式服务器和测试服务器的HTTPS升级完成,把我的点滴记录下来
-
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。