在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前言:首先在这里简单说一下为什么现在都在使用 HTTPS 协议: 其实使用 HTTPS 协议最大的原因就是因为 HTTP 协议不安全,因为 HTTP 数据传输时是:明文传输数据 也就是说当客户端在输入用户名和密码时,都会显示出来。而 HTTPS 协议的话则是 密文传输数据 就是在传输数据时会进行加密。
加密算法:
一、HTTPS 简介HTTPS 其实是有两部分组成:HTTP + SSL/TLS,也就是在 HTTP 上又加了一层处理加密信息的模块。服务端和客户端的信息传递都会通过 TLS 进行加密,所以传输的数据都是加密后的数据。 HTTPS 协议原理:
二、Nginx 实现 HTTPS 网站设置1.安装 Nginx[root@Nginx ~]# yum -y install pcre-devel zlib-devel popt-devel openssl-devel openssl [root@Nginx ~]# wget http://www.nginx.org/download/nginx-1.18.0.tar.gz [root@Nginx ~]# ls anaconda-ks.cfg nginx-1.18.0.tar.gz [root@Nginx ~]# tar zxf nginx-1.18.0.tar.gz -C /usr/src/ [root@Nginx ~]# cd /usr/src/nginx-1.18.0/ [root@Nginx nginx-1.18.0]# useradd -M -s /sbin/nologin nginx [root@Nginx nginx-1.18.0]# ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-file-aio \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --with-http_flv_module \ --with-http_ssl_module \ --with-pcre && make && make install [root@Nginx nginx-1.18.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ [root@Nginx nginx-1.18.0]# cd [root@Nginx ~]# nginx [root@Nginx ~]# netstat -anpt | grep 80 2.创建服务器证书密钥文件[root@Nginx ~]# openssl genrsa -des3 -out server.key 1024 ... Enter pass phrase for server.key: # 输入密码 Verifying - Enter pass phrase for server.key: # 确认密码 3.创建服务器证书的申请文件[root@Nginx ~]# openssl req -new -key server.key -out server.csr Enter pass phrase for server.key: # 输入前面创建的密码 ... Country Name (2 letter code) [XX]:CN # 国家代号. 中国输入 CN State or Province Name (full name) []:BeiJing # 省的全名. 拼音 Locality Name (eg, city) [Default City]:BeiJing # 市的全名. 拼音 Organization Name (eg, company) [Default Company Ltd]:Coco # 公司英文名 Organizational Unit Name (eg, section) []: # 可以不输入 Common Name (eg, your name or your server's hostname) []:www.Coco.com # 域名 Email Address []:[email protected] # 电子邮箱. 可随意填 ... A challenge password []: # 可以不输入 An optional company name []: # 可以不输入 备份一份服务器密钥文件 [root@Nginx ~]# cp server.key server.key.org 去除文件口令 [root@Nginx ~]# openssl rsa -in server.key.org -out server.key Enter pass phrase for server.key.org: # 输入密码 4.生成证书文件[root@Nginx ~]# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt Signature ok subject=/C=CN/ST=BeiJing/L=BeiJing/O=Coco/CN=www.Coco.com/[email protected] Getting Private key 5.修改 Nginx 主配置文件[root@Nginx ~]# mkdir -p /usr/local/nginx/conf/ssl [root@Nginx ~]# cp server.crt server.key /usr/local/nginx/conf/ssl/ [root@Nginx ~]# vim /usr/local/nginx/conf/nginx.conf server { listen 443; # 监听端口 ssl on; # 开启 SSL ssl_certificate ssl/server.crt; # PS:我这里是相对路径. 你们可以使用绝对路径 ssl_certificate_key ssl/server.key; # 系统会在 /usr/local/nginx/conf/ 目录中寻找 server_name www.Coco.com; # 证书对应的域名 ... } [root@Nginx ~]# nginx -s reload # 重启 Nginx 服务
验证:访问刚才设置的域名
实现客户端访问
错误配置: 在同一个 问题:当客户端访问 server { listen 80; listen 443; server_name www.Coco.com; root html; index index.html index.htm; rewrite ^(.*)$ https://$host$1 permanent; }
正确配置:
[root@Nginx ~]# vim /usr/local/nginx/conf/nginx.conf server { listen 80; server_name www.Coco.com; rewrite ^(.*)$ https://$host$1 permanent; ... } server { listen 443; ssl on; ssl_certificate ssl/server.crt; ssl_certificate_key ssl/server.key; server_name www.Coco.com; ... } [root@localhost ~]# nginx -s reload 验证:访问 到此这篇关于基于Nginx实现HTTPS网站设置的步骤的文章就介绍到这了,更多相关Nginx HTTPS网站设置内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论