这里Nginx搭建https服务器,必须几个要求,第一有安装openssl-devel,当然这个没有貌似编译添加ssl模块会出错。那如果编译有不会的可以参考我前面的博客,当然baidu和google上资料也很多。
1、确认Nginx服务器能正常运行
lsof-i:80
#查看80端口是否正常启用,Nginx默认80端口而不是443端口
netstat-ntpl|grepNginx|wc-l
ss-ntpl|grepNginx|wc-l
2、备份原有的主配置文件
cpNginx.confNginx.conf.https
3、使用openssl生成不信任的证书和私钥
opensslgenrsa-des3-outhttps_1.key2048
#首先创建私钥,会提示输入密码,这个密码一定要备份,如果在生产环境中,知道的人越少越好,因为Nginx服务器正常重启停止等操作都要密码。
#genrsa:产生RSA密钥命令,des3:机密解密算法,out:输出的文件名,2048:表示长度也有叫大小的,我还是习惯长度。
opensslreq-new-x509-days3650-keyhttps_1.key-outhttps_1.crt
#利用前面的私钥创建不信任的证书(但好歹也是个证书)
#req:产生证书签发申请命令,-new:表示新的请求,x509签发x.509格式的证书,表示证书有效的天数,key指定私钥文件,out:输出的文件名
注意:以下操作都是在一个server标签里配置的
worker_processes1; events{ worker_connections1024; } http{ includemime.types; default_typeapplication/octet-stream; sendfileon; keepalive_timeout65; server{ listen443; server_namelocalhost; ssl on; ssl_certificate /usr/local/Nginx/conf/https_1.crt; ssl_certificate_key /usr/local/Nginx/conf/https_1.key; ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1; ssl_prefer_server_cipherson; location/{ roothtml; indexindex.htmlindex.htm; } error_page500502503504/50x.html; location=/50x.html{ roothtml; } } }
############################################################
listen:监听的端口
server_name:其实就是域名
ssl on:开启ssl
ssl_certificate:表示证书存放的路径,建议用绝对路径
ssl_certificate_key:表示私钥路径,建议用绝对路径
ssl_session_timeout5m:表示证书在客户机缓存的生命周期,特别提醒下证书是个很贵的东西要保存好。
ssl_protocolsSSLv3TLSv1:证书使用的协议
ssl_prefer_server_ciphers on:SLv3和TLSv1协议的服务器密码需求优先级高于客户端密码(这个我也不清楚,可以肯定的是应该是一个优化参数)
ssl_ciphers HIGH:!aNULL:!MD5:!EXPORT56:!EXP:这个参数我没用,因为不知道怎么用
############################################################
5、重启Nginx
/usr/local/Nginx/sbin/Nginx-sreload
#重启完一定要查看端口情况,因为并不是每一次重启都能成功的。
lsof-i:443
#如果没有说明重启不成功
提示:可以killall Nginx后重新启动。防火墙要允许443端口而不是80端口。
6、使用客户机访问,查看结果
vpersoning:如果又出错的地方可以私聊我,我是新手,但是我喜欢问题。