详解nginx如何配置HTTPS
使用ssl模块配置同时支持http和https并存
一,生成证书
#1、首先,进入你想创建证书和私钥的目录,例如: cd/etc/nginx/ #2、创建服务器私钥,命令会让你输入一个口令: opensslgenrsa-des3-outserver.key1024 #3、创建签名请求的证书(CSR): opensslreq-new-keyserver.key-outserver.csr #4、在加载SSL支持的Nginx并使用上述私钥时除去必须的口令: cpserver.keyserver.key.org opensslrsa-inserver.key.org-outserver.key #5、最后标记证书使用上述私钥和CSR: opensslx509-req-days365-inserver.csr-signkeyserver.key-outserver.crt
二,配置nginx
cd/etc/nginx vimnginx.conf # #HTTPSserverconfiguration # server{ listen443; server_name本机的IP地址; sslon; ssl_certificate/etc/nginx/server.crt; ssl_certificate_key/etc/nginx/server.key; ssl_session_timeout5m; #ssl_protocolsSSLv2SSLv3TLSv1; #ssl_ciphersALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; #ssl_prefer_server_cipherson; location/{ #roothtml; #indextestssl.htmlindex.htmlindex.htm; proxy_redirectoff; proxy_set_headerHost$host; proxy_set_headerX-Real-IP$remote_addr; proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for; proxy_passhttp://IP地址/ssl/; } }
重启nginx,在浏览器输入:https://IP地址会跳转到http://IP地址/ssl/这个地址(后期调整为webservice接口地址即可)
三、受浏览器信任的StartSSL免费SSL证书:
跟VeriSign一样,StartSSL(网址:http://www.startssl.com,公司名:StartCom)也是一家CA机构,
它的根证书很久之前就被一些具有开源背景的浏览器支持(Firefox浏览器、谷歌Chrome浏览器、苹果Safari浏览器等)。
四、项目需要,将访问目录\services\由http访问重定向到https(解决方法:nginxrewrite加上location方式实现)
location~/services/.*${ if($server_port~"^80$"){ set$rule_01$rule_0; } if($rule_0="1"){ rewrite/(.*)https://IP地址/$1permanent;break; } }
五,配置结束上传以后用nginx-t测试下配置无误就reload一下nginx服务检查443端口是否在监听
/usr/local/nginx/sbin/nginx-t nginx:theconfigurationfile/usr/local/nginx/conf/nginx.confsyntaxisok nginx:configurationfile/usr/local/nginx/conf/nginx.conftestissuccessful(显示表示配置文件没有错误) servicenginxreload(重新加载nginx服务) netstat-lan|grep443(查看443端口) tcp000.0.0.0:4430.0.0.0:*LISTEN(有看到这一行就表示HTTPS已经在工作了)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。