欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Nginx搭建Https服务

程序员文章站 2022-05-01 09:41:13
...

前言
Nginx搭建Https服务

最近打王者荣耀排位赛,遇到一个不会平A的百里。打了5分钟,我直接退游戏了。然后就来写博客了。感谢百里!
Nginx搭建Https服务

为什么要用Https协议

我们都知道Http协议是通过铭文传输的,这样对于用户来说是非常不安全的,因为传输的数据可能会含有敏感信息,如果这些数据被攻击者截获,那么可以毫不费力地查看到用于的敏感信息,对用户造成损失。http是基于tcp的,而https 就相当于http + ssl。
现在全球有非常多的公司使用了https协议,因为安全是非常重要的。

Https工作流程
Nginx搭建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证书

  1. 创建一个目录,用于存放证书
mkdir cert

Nginx搭建Https服务

  1. 进入刚创建的目录,生成私钥
cd cert
openssl genrsa -des3 -out https.key 1024

Nginx搭建Https服务

箭头的位置是要你设置一个密码,没有回显。

  1. 创建签名请求证书
openssl req -new -key https.key -out https.csr

Nginx搭建Https服务

这里会问你一堆问题,比如国家、城市、邮箱、公司、提供商等等,这些随便填就可以了。

  1. 设置私钥和证书的有效时间
openssl x509 -req -days 365 -in https.csr -signkey https.key -out https.crt

Nginx搭建Https服务
OK到这里已经完成了一大部分,接下来进入cert目录,看看有没有生成私钥和证书。
Nginx搭建Https服务

上面漏掉了一步
配置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生成的证书,并不是厂商认证的,所以就会提示你不安全。如果你去阿里云、腾讯云这些地方去申请证书,就不会出现这种情况了,因为他们的都是被授权的证书。
点击"高级"按钮

Nginx搭建Https服务
接下来在点击接受"风险并继续"。

Nginx搭建Https服务
Nginx搭建Https服务
ok,到这里我们就看到了nginx的欢迎页面,说明我们已经成功了。现在你就可以把他应用到你得项目中进行测试。我还是建议大家去申请一个ssl证书。

如果有问题或者不懂得地方记得私信我。