nginx如何开启https协议
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx如何开启https协议相关的知识,希望对你有一定的参考价值。
参考 http://blog.oldboyedu.com/nginx-https/
nginx的https协议需要ssl模块的支持,我们在编译nginx时使用–with-http_ssl_module参数加入SSL模块。还需要服务器私钥,服务器证书,如果是公司对外环境,这个证书需要购买第三方的权威证书,否则用户体验得不到保障;这里我仅仅在我的vps上使用并测试。
注意:如果你购买的是第三方服务证书,那么只需要参考1.3-1.4的配置信息即可完整企业ssl配置实践。
1.1检查Nginx的SSL模块是否安装
[[email protected] ~]# /application/nginx/sbin/nginx -V nginx version: nginx/1.6.3 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) TLS SNI support enabled configure arguments: –prefix=/application/nginx-1.6.3 –user=nginx –group=nginx –with-http_ssl_module –with-http_stub_status_module
1.2准备私钥和证书
1.2.1创建服务器私钥
[[email protected] ~]# cd /application/nginx/conf/ [[email protected] conf]# mkdir key [[email protected] conf]# cd key/ [[email protected] key]# openssl genrsa -des3 -out server.key 1024 Generating RSA private key, 1024 bit long modulus ..++++++ …++++++ e is 65537 (0x10001) Enter pass phrase for server.key: ##输入一个密码 Verifying – Enter pass phrase for server.key: ##再次输入
1.2.2签发证书
[[email protected] key]# openssl req -new -key server.key -out server.csr Enter pass phrase for server.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter ‘.’, the field will be left blank. —– Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:BJ Locality Name (eg, city) [Default City]:BJ Organization Name (eg, company) [Default Company Ltd]:SDU Organizational Unit Name (eg, section) []:SA Common Name (eg, your name or your server’s hostname) []:XuBuSi Email Address []:[email protected] Please enter the following ‘extra’ attributes to be sent with your certificate request A challenge password []: An optional company name []:
1.2.3删除服务器私钥口令
[[email protected] key]# cp server.key server.key.ori [[email protected] key]# openssl rsa -in server.key.ori -out server.key Enter pass phrase for server.key.ori: writing RSA key
1.2.4生成使用签名请求证书和私钥生成自签证书
[[email protected] key]# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt Signature ok subject=/C=CN/ST=BJ/L=BJ/O=SDU/OU=SA/CN=XuBuSi/[email protected] Getting Private key
1.3开启Nginx SSL
server { server_name www.123.com; listen 80; rewrite ^(.*) https://$server_name$1 permanent; } server { listen 443; server_name www.123.com; ssl on; ssl_certificate key/server.crt; ssl_certificate_key key/server.key; location / { root /application/nginx-1.6.2/html/; ##nginx的默认目录 index index.html index.htm index.php; } }
把80端口的访问自动转到443端口
最后重启nginx服务
/application/nginx/sbin/nginx -s reload
查看端口
netstat -lnp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 8342/nginx
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 8342/nginx
最后可以在浏览器里面测试 http://www.123.com 看是否自动跳转到https
本文出自 “渐行渐远” 博客,请务必保留此出处http://825536458.blog.51cto.com/4417836/1782847
以上是关于nginx如何开启https协议的主要内容,如果未能解决你的问题,请参考以下文章