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

[经验分享] Nginx实战基础篇四 通过https方式访问web服务器

[复制链接]

尚未签到

发表于 2018-11-11 09:52:06 | 显示全部楼层 |阅读模式
  Nginx实战基础篇四 通过https方式访问web服务器
  版权声明:
本文遵循“署名非商业性使用相同方式共享 2.5 中国大陆”协议

您可以自由复制、发行、展览、表演、放映、广播或通过信息网络传播本作品

您可以根据本作品演义自己的作品

您必须按照作者或者许可人指定的方式对作品进行署名。

您不得将本作品用于商业目的。

如果您改变、转换本作品或者以本作品为基础进行创作,您只能采用与本协议相同的许可协议发布基于本作品的演绎作品。

对任何再使用或者发行,您都必须向他人清楚地展示本作品使用的许可协议条款。

如果得到著作权人的许可,您可以不受任何这些条件的限制。

Designed by 小诺(www.rsyslog.org  dreamfire.blog.51cto.com)

众所周知,我们在互联网上冲浪,一般都是使用的http协议(超文本传输协议),默认情况下数据是明文传送的,这些数据在传输过程中都可能会被捕获和窃听,因此是不安全的。https可以说是http协议的安全版,就是为了满足对安全性要求比较高的用户而设计的。如果您的邮件中有敏感数据,不希望被人窃听;如果您不希望被钓鱼网站盗用帐号信息,如果您希望您在使用邮箱的过程中更安全,那么我们推荐您使用https安全连接。

现在是我们要做一个网站 www2.rsyslor.org 要求通过https://www2.rsyslog.org进行访问.

www2.rsyslog.org 192.168.100.107

DNS 192.168.100.102

实验步骤

第一步、首先生成一对证书。

你需要使用到openssl命令,所以请确认系统已经安装过此包

RHEL6中在/etc/pki/tls/certs 目录有个脚本可以帮助我们简化证书生成的过程,所以

我们首先切换到此目录

  


  • [root@rhel6u3-7 ~]# cd /etc/pki/tls/certs/
  • [root@rhel6u3-7 certs]# make server.key  //生成私钥
  • umask 77 ; \
  •     /usr/bin/openssl genrsa -aes128 2048 > server.key
  • Generating RSA private key, 2048 bit long modulus
  • ..........+++
  • .....................................+++
  • e is 65537 (0x10001)
  • Enter pass phrase:
  • Verifying - Enter pass phrase:
  • [root@rhel6u3-7 certs]# openssl rsa -in server.key -out server.key  //除去密码以便询问时不需要密码
  • Enter pass phrase for server.key:
  • writing RSA key
  • [root@rhel6u3-7 certs]# make server.csr  //生成证书颁发机构,用于颁发公钥
  • umask 77 ; \
  •     /usr/bin/openssl req -utf8 -new -key server.key -out server.csr
  • 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) []:sh
  • Locality Name (eg, city) [Default City]:sh
  • Organization Name (eg, company) [Default Company Ltd]:rsyslog
  • Organizational Unit Name (eg, section) []:rsyslog
  • Common Name (eg, your name or your server's hostname) []:xiaonuo
  • Email Address []:unix.root@hotmail.com
  • Please enter the following 'extra' attributes
  • to be sent with your certificate request
  • A challenge password []:123.com
  • An optional company name []:it
  • [root@rhel6u3-7 certs]# openssl x509 -in server.csr -req -signkey server.key -days 365 -out server.crt  //颁发公钥,不过由于我们并不是去CA证书中心申请的公钥,所以在使用的时候,客户端浏览器会跳出未受信任的警告。如果你在生产环境下,请去CA申请。
  • Signature ok
  • subject=/C=cn/ST=sh/L=sh/O=rsyslog/OU=rsyslog/CN=xiaonuo/emailAddress=unix.root@hotmail.com
  • Getting Private key
  • [root@rhel6u3-7 certs]#
  


第二步、编辑nginx主配置文件,添加ssl模块参数

  


  • [root@rhel6u3-7 certs]# vim /usr/local/nginx/conf/nginx.conf
  • include /usr/local/nginx/server/www2.rsyslog.org;  //将虚拟主机单独设置,然后用include包含到主配置文件中,简化主配置文件的配置
  • [root@rhel6u3-7 certs]# vim /usr/local/nginx/server/www2.rsyslog.org  //注意以下配置可以在主配置文件中复制ssl模块信息
  • server {
  •         listen       443;  监听端口为443
  •         server_name  www2.rsyslog.org;

  •         ssl                  on;  //开启ssl
  •         ssl_certificate      /etc/pki/tls/certs/server.crt;  //证书位置
  •         ssl_certificate_key  /etc/pki/tls/certs/server.key;  //私钥位置
  •         ssl_session_timeout  5m;
  •         ssl_protocols  SSLv2 SSLv3 TLSv1;  //指定密码为openssl支持的格式
  •         ssl_ciphers  HIGH:!aNULL:!MD5; //密码加密方式
  •         ssl_prefer_server_ciphers   on; //依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码

  •         location / {
  •             root   sites/www2;    //www2.rsyslog.org根目录的相对位置
  •             index  index.html index.htm;
  •         }
  •     }
  


第三步、创建网站的目录、主页、权限。

  


  • [root@rhel6u3-7 ~]# cd /usr/local/nginx/sites/
  • [root@rhel6u3-7 sites]# mkdir www2  //创建网站根目录
  • [root@rhel6u3-7 sites]# echo This is https://www2.rsyslog.org >www2/index.html  //写个主测试页面
  • [root@rhel6u3-7 server]# chown nginx. /usr/local/nginx/server/ -R  //设置配置文件的属主和属组为nginx
  • [root@rhel6u3-7 server]# chmod 600 /usr/local/nginx/server/ -R  //设置配置文件的权限为600
  • [root@rhel6u3-7 server]# chown nginx. /usr/local/nginx/sites/www2 –R  //设置网站根目录的属主和属组为nginx
  • [root@rhel6u3-7 server]# chmod 755 /usr/local/nginx/sites/www2 –R //设置网站根目录权限为755,其他人可以读取网站信息。
  


第四步、在DNS区域中添加主机A记录,有关DNS配置请参看http://dreamfire.blog.51cto.com/418026/1091943

  


  • www2    A   192.168.100.107
  


第五步、启动nginx服务器。

  


  • [root@rhel6u3-7 certs]# /etc/rc.d/init.d/nginx reload  //平滑重启nginx保证网站不被中断
  • nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  • nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  • Reloading nginx:                                           [  OK  ]
  


  第六步、测试网站是否能够通过https访问
  将PC机网卡的DNS更改为192.168.100.102
DSC0000.png


在IE浏览器中输入https://www2.rsyslog.org 进行测试。提示安全证书不受信任,是因为证书是本机模拟的。点击“仍然继续”即可。

DSC0001.png


DSC0002.png

  


Nginx实战基础篇PDF高清下载系列:


  

  Nginx实战基础篇一:源码包编译安装部署web服务器  
  http://down.51cto.com/data/688744
  Nginx实战基础篇二:Nginx主配置文件参数详解
  http://down.51cto.com/data/688835
  Nginx实战基础篇三:Nginx上虚拟主机的实现过程
  http://down.51cto.com/data/688836
  Nginx实战基础篇四:通过https方式安全访问web服务器
  http://down.51cto.com/data/689197
  Nginx实战基础篇五:Nginx上实现用户名密码认证访问
  http://down.51cto.com/data/694934
  Nginx实战基础篇六:通过源码包编译安装部署LNMP搭建Discuz论坛
  http://down.51cto.com/data/694932





运维网声明 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.iyunv.com/thread-633576-1-1.html 上篇帖子: nginx 配置域名转发和进行ip限制 下篇帖子: Nginx基础入门之uptream负载均衡常用配置项说明
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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