设为首页 收藏本站
查看: 1217|回复: 0

[经验分享] Nginx之Https最佳实践(跳转)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-8-19 09:52:07 | 显示全部楼层 |阅读模式
  nginx的https协议需要ssl模块的支持,我们在编译nginx时使用--with-http_ssl_module参数加入SSL模块。还需要服务器私钥,服务器证书,如果是公司对外环境,这个证书需要购买第三方的权威证书,否则用户体验得不到保障。1.1检查Nginx的SSL模块是否安装[iyunv@WZKX-WEB01~]# /application/nginx/sbin/nginx -V
nginx version:nginx/1.9.13
built by gcc4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
built withOpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI supportenabled
configure arguments: --prefix=/application/nginx-1.9.13--user=nginx --group=nginx --with-http_ssl_module--with-http_stub_status_module
1.2生成证书和密钥1.2.1创建服务器私钥[iyunv@WZKX-WEB01~]# cd /application/nginx/conf/
[iyunv@WZKX-WEB01conf]# mkdir key       《====创建要生成证书的目录
[iyunv@WZKX-WEB01conf]# cd key          《====进入要生成证书的目录
[iyunv@WZKX-WEB01key]# openssl genrsa -des3 -out server.key 1024     《====使用openssl创建服务器私钥

..++++++

…++++++

e is 65537 (0x10001)

Enter pass phrase for server.key:

Verifying – Enter pass phrase forserver.key:
1.2.2 创建证书签名请求(Certificate Signing Request (CSR))【证书签名请求(CSR)】[iyunv@WZKX-WEB01 key]# openssl req -new -key server.key -out server.csr
说明:这是用步骤1的密钥生成证书请求文件server.csr, 这一步提很多问题,一一输入

Enter pass phrase for server.key:

You are about to be asked to enter information thatwill be incorporated

into your certificate request.

What you are about to enter is what is called aDistinguished Name or a DN.

There are quite a few fields but you can leave someblank

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 CompanyLtd]:SDU

Organizational Unit Name (eg, section)[]:SA         

Common Name (eg, your name or your server’shostname) []:TANK

Email Address []:254702202@qq.com


Please enter the following ‘extra’ attributes

to be sent with your certificate request

A challenge password[]:      

An optional company name []:

1.2.3清除以SSL启动NGINX时提示必须输入密钥[iyunv@WZKX-WEB01key]# cp server.key server.key.ori
[iyunv@WZKX-WEB01key]# openssl rsa -in server.key.ori -out server.key 《==创建要生成证书的目录

Enter pass phrase for server.key.ori:

writing RSA key
1.2.4生成使用签名请求证书和私钥生成自签证书[iyunv@WZKX-WEB01key]# 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=TANK/emailAddress=254702202@qq.com

Getting Private key

说明:这是用步骤1,2的的密钥和证书请求生成证书server.crt。  【-days参数指明证书有效期,单位为天】
1.2.5检查生成的证书和私钥[iyunv@WZKX-WEB01key]# pwd
/application/nginx/conf/key
[iyunv@WZKX-WEB01key]# ls
server.crt server.csr  server.key  server.key.ori
1.3开启Nginx SSL

[iyunv@WZKX-WEB01 key]# cat /application/nginx/conf/nginx.conf

    server {

       ssl on;

       ssl_certificate /application/nginx/conf/key/server.crt;

       ssl_certificate_key /application/nginx/conf/key/server.key;


        listen       443;

       server_name  www.miaomiao.com;


        location /{

           root   /opt/web/www.miaomiao.com;

           index  index.html index.htm;

        }

    }
1.3.1重启nginx生效

[iyunv@WZKX-WEB01 key]# /application/nginx/sbin/nginx -s reload

[iyunv@WZKX-WEB01 key]# netstat -lntup|grep 443

tcp       0      0 0.0.0.0:443                 0.0.0.0:*                   LISTEN      11404/nginx
1.3.2测试https由于该证书非第三方权威机构颁发,而是我们自己签发的,所以浏览器会警告,如果是对外的业务需要加密,必须使用商用第三方签名证书
1.4配置重定向80端口转443端口
以上配置有个不好的地方,如果用户使用时忘了使用https或者443端口,那么将会报错,所以我们需要80端口的访问转到443端口并使用ssl加密访问。【生产环境中,用户也基本不可能用https去访问一个网站,所以实现跳转很有必要。】
只需要增加一个server段,使用301永久重定向。

[iyunv@WZKX-WEB01 key]# cat /application/nginx/conf/nginx.conf

user  nginx;

worker_processes 1;

error_log /opt/web/logs/error.log;

worker_rlimit_nofile 65535;


pid       logs/nginx.pid;

events {

    use epoll;

   worker_connections  65535;

}

http {

    include       mime.types;

   default_type application/octet-stream;

    sendfile        on;

   keepalive_timeout  65;

    log_format  commonlog '$remote_addr - $remote_user [$time_local] "$request" '

                     '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent""$http_x_forwarded_for"';


    access_log  /opt/web/logs/access.log  commonlog;

    server {

        listen       80;

       server_name  www.miaomiao.com;

        rewrite ^/(.*) https://www.miaomiao.com/$1 permanent;


        location /{

           root   /opt/web/www.miaomiao.com;

           index  index.html index.htm;

        }

    }

    server {

        ssl on;

       ssl_certificate /application/nginx/conf/key/server.crt;

       ssl_certificate_key /application/nginx/conf/key/server.key;


        listen       443;

       server_name  www.miaomiao.com;


        location /{

           root   /opt/web/www.miaomiao.com;

           index  index.html index.htm;

        }

    }

}
1.5重启nginx生效[iyunv@WZKX-WEB01 key]# /application/nginx/sbin/nginx -t
nginx: the configuration file/application/nginx-1.9.13/conf/nginx.conf syntax is ok
nginx: configuration file/application/nginx-1.9.13/conf/nginx.conf test is successful
[iyunv@WZKX-WEB01 key]# /application/nginx/sbin/nginx-s reload


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-259906-1-1.html 上篇帖子: HTTP 499 状态码 nginx下 499错误 下篇帖子: nginx启动脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表