Nginx搭建Https服务
前言
最近打王者荣耀排位赛,遇到一个不会平A的百里。打了5分钟,我直接退游戏了。然后就来写博客了。感谢百里!
为什么要用Https协议
我们都知道Http协议是通过铭文传输的,这样对于用户来说是非常不安全的,因为传输的数据可能会含有敏感信息,如果这些数据被攻击者截获,那么可以毫不费力地查看到用于的敏感信息,对用户造成损失。http是基于tcp的,而https 就相当于http + ssl。
现在全球有非常多的公司使用了https协议,因为安全是非常重要的。
Https工作流程
1、TCP 三次同步握手建立连接
2、客户端验证服务器数字证书
3、DH 算法协商对称加密算法的**、hash 算法的**
4、SSL 安全加密隧道协商完成
5、网页以加密的方式传输,用协商的对称加密算法和**加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。
Nginx搭建Https服务
开发环境:
- Centos 7 64位
- Nginx 1.16.1
ssl证书:我们可以去阿里云、腾讯云这里去购买,当然也可以使用Nginx生成ssl证书,不过生成的证书是不受信任的,后面你就知道了。我在这里使用Nginx生成ssl证书。
Nginx生成ssl证书
- 创建一个目录,用于存放证书
mkdir cert
- 进入刚创建的目录,生成私钥
cd cert
openssl genrsa -des3 -out https.key 1024
箭头的位置是要你设置一个密码,没有回显。
- 创建签名请求证书
openssl req -new -key https.key -out https.csr
这里会问你一堆问题,比如国家、城市、邮箱、公司、提供商等等,这些随便填就可以了。
- 设置私钥和证书的有效时间
openssl x509 -req -days 365 -in https.csr -signkey https.key -out https.crt
OK到这里已经完成了一大部分,接下来进入cert目录,看看有没有生成私钥和证书。
上面漏掉了一步
配置SSL安全证书重启避免输入密码
:openssl rsa -in https.key.org -out https.key
配置nginx.conf
server {
listen 443 ssl;
server_name 192.168.1.135;
ssl_certificate /opt/nginx-1.16.1/cert/https.crt;
ssl_certificate_key /opt/nginx-1.16.1/cert/https.key;
# ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
在我保存之后,使用nginx -t 命令去检查配置文件。结果报错:
nginx: [emerg] the “ssl” parameter requires ngx_http_ssl_module in /opt/nginx-1.16.1/conf/nginx.conf:105
这个错误的原因是我的ssl模块未开启。
这个博客写的不错可以看一下:https://www.cnblogs.com/ghjbk/p/6744131.html
我们都弄好之后就可以启nginx了。nginx
接下来通过浏览器去访问。注意这里用的是https协议,端口默认就是443。
这个界面在几年前应该有小伙伴见到过吧。原因就是我们使用的nginx生成的证书,并不是厂商认证的,所以就会提示你不安全。如果你去阿里云、腾讯云这些地方去申请证书,就不会出现这种情况了,因为他们的都是被授权的证书。
点击"高级"按钮
接下来在点击接受"风险并继续"。
ok,到这里我们就看到了nginx的欢迎页面,说明我们已经成功了。现在你就可以把他应用到你得项目中进行测试。我还是建议大家去申请一个ssl证书。
如果有问题或者不懂得地方记得私信我。
上一篇: 重庆老火锅底料怎么用最合适
下一篇: 重庆麻辣火锅底料配方有哪些