Nginx实战基础篇四 通过https方式访问web服务器

简介:

众所周知,我们在互联网上冲浪,一般都是使用的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 目录有个脚本可以帮助我们简化证书生成的过程,所以

我们首先切换到此目录


 
 
  1. [root@rhel6u3-7 ~]# cd /etc/pki/tls/certs/ 
  2. [root@rhel6u3-7 certs]# make server.key  //生成私钥 
  3. umask 77 ; \ 
  4.     /usr/bin/openssl genrsa -aes128 2048 > server.key 
  5. Generating RSA private key, 2048 bit long modulus 
  6. ..........+++ 
  7. .....................................+++ 
  8. e is 65537 (0x10001) 
  9. Enter pass phrase: 
  10. Verifying - Enter pass phrase: 
  11. [root@rhel6u3-7 certs]# openssl rsa -in server.key -out server.key  //除去密码以便询问时不需要密码 
  12. Enter pass phrase for server.key: 
  13. writing RSA key 
  14. [root@rhel6u3-7 certs]# make server.csr  //生成证书颁发机构,用于颁发公钥 
  15. umask 77 ; \ 
  16.     /usr/bin/openssl req -utf8 -new -key server.key -out server.csr 
  17. You are about to be asked to enter information that will be incorporated 
  18. into your certificate request. 
  19. What you are about to enter is what is called a Distinguished Name or a DN. 
  20. There are quite a few fields but you can leave some blank 
  21. For some fields there will be a default value, 
  22. If you enter '.', the field will be left blank. 
  23. ----- 
  24. Country Name (2 letter code) [XX]:cn 
  25. State or Province Name (full name) []:sh 
  26. Locality Name (eg, city) [Default City]:sh 
  27. Organization Name (eg, company) [Default Company Ltd]:rsyslog 
  28. Organizational Unit Name (eg, section) []:rsyslog 
  29. Common Name (eg, your name or your server's hostname) []:xiaonuo 
  30. Email Address []:unix.root@hotmail.com 
  31. Please enter the following 'extra' attributes 
  32. to be sent with your certificate request 
  33. A challenge password []:123.com 
  34. An optional company name []:it 
  35. [root@rhel6u3-7 certs]# openssl x509 -in server.csr -req -signkey server.key -days 365 -out server.crt  //颁发公钥,不过由于我们并不是去CA证书中心申请的公钥,所以在使用的时候,客户端浏览器会跳出未受信任的警告。如果你在生产环境下,请去CA申请。 
  36. Signature ok 
  37. subject=/C=cn/ST=sh/L=sh/O=rsyslog/OU=rsyslog/CN=xiaonuo/emailAddress=unix.root@hotmail.com 
  38. Getting Private key 
  39. [root@rhel6u3-7 certs]# 

 

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

 


 
 
  1. [root@rhel6u3-7 certs]# vim /usr/local/nginx/conf/nginx.conf 
  2. include /usr/local/nginx/server/www2.rsyslog.org;  //将虚拟主机单独设置,然后用include包含到主配置文件中,简化主配置文件的配置 
  3. [root@rhel6u3-7 certs]# vim /usr/local/nginx/server/www2.rsyslog.org  //注意以下配置可以在主配置文件中复制ssl模块信息 
  4. server { 
  5.         listen       443;  监听端口为443 
  6.         server_name  www2.rsyslog.org; 
  7.  
  8.         ssl                  on;  //开启ssl 
  9.         ssl_certificate      /etc/pki/tls/certs/server.crt;  //证书位置 
  10.         ssl_certificate_key  /etc/pki/tls/certs/server.key;  //私钥位置 
  11.         ssl_session_timeout  5m; 
  12.         ssl_protocols  SSLv2 SSLv3 TLSv1;  //指定密码为openssl支持的格式 
  13.         ssl_ciphers  HIGH:!aNULL:!MD5; //密码加密方式 
  14.         ssl_prefer_server_ciphers   on; //依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码 
  15.  
  16.         location / { 
  17.             root   sites/www2;    //www2.rsyslog.org根目录的相对位置 
  18.             index  index.html index.htm; 
  19.         } 
  20.     } 

 

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

 


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

 

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

 


 
 
  1. www2    A   192.168.100.107  

 

第五步、启动nginx服务器。

 


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

 

第六步、测试网站是否能够通过https访问

PC机网卡的DNS更改为192.168.100.102

 

 

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

 

 



本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/1141302,如需转载请自行联系原作者

相关文章
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
1078 87
|
缓存 负载均衡 安全
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
1360 0
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
968 60
|
安全 应用服务中间件 网络安全
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
985 60
|
应用服务中间件 Linux 网络安全
nginx安装部署ssl证书,同时支持http与https方式访问
为了使HTTP服务支持HTTPS访问,需生成并安装SSL证书,并确保Nginx支持SSL模块。首先,在`/usr/local/nginx`目录下生成RSA密钥、证书申请文件及自签名证书。接着,确认Nginx已安装SSL模块,若未安装则重新编译Nginx加入该模块。最后,编辑`nginx.conf`配置文件,启用并配置HTTPS服务器部分,指定证书路径和监听端口(如20000),保存后重启Nginx完成部署。
5366 8
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
1513 3
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
15252 1
|
Web App开发 算法 应用服务中间件
nginx开启局域网https访问
【10月更文挑战第22天】为了调试WebRTC功能,需要在局域网内搭建HTTPS协议。具体步骤包括:在已部署Nginx和安装OpenSSL的环境中生成私钥、证书签名请求和自签名证书;将生成的文件放置到Nginx的证书目录并修改Nginx配置文件,最后重启Nginx服务。注意,自签名证书不受第三方机构认可,如需正式使用,需向CA申请签名。
1338 2
|
搜索推荐 安全 网络安全
服务器支持HTTPS的时机和条件
【10月更文挑战第23天】服务器支持HTTPS的时机和条件
287 5
|
应用服务中间件 Shell PHP
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
windows系统配置nginx环境运行pbootcms访问首页直接404的问题