我们都知道一开始我们的域名解析到对应的服务器(ip),这时候我们的链接是不安全的,我们发现https是安全的连接,那么我们就来配置https。
那么,为什么我们需要https?参考这篇文章:http 与 https 的区别以及加密详解
大家可以参考我之前的文章进行安装nginx:Linux安装nginx
参考:http 与 https 的区别以及加密详解
- 首先我们的服务器上要配置nginx,利用nginx来配置我们的https,来达到我们的连接是安全的目的。(如下图所示)
- 服务器上安装好nginx以后吗,我们需要去购买https证书,当然我们可以在阿里云上购买免费的证书来进行测试。
- 购买完证书以后,我们要把他们下载下来,放到我们的服务器上,然后利用nginx去配置。
- 刚刚都是准备工作,我们接下来进入正题,进入我们的服务器,进入etc/nginx 目录下
一开始是没有self和cert两个文件夹的,我新建了这两个文件夹,cert用来防止https证书,self来防止配置文件。这里需要注意的是安装完nginx以后,会有一个默认的配置文件,我个人习惯是新建一个配置文件,然后在默认的配置文件上加一行代码来识别我先新建的配置文件。
- 在默认的配置文件里面我们添加一行代码,用来识别我们新建的配置文件
- 然后我们就来书写我们的自定义的配置文件
self.conf 文件的内容如下:
server {
listen 80;
server_name www.abc.com; #域名
return 301 https://$server_name$request_uri;
location / {
proxy_pass http://127.0.0.1:8080; #项目运行端口
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";
}
}
server {
listen 443 ssl; #对应服务器要开通443端口
server_name www.abc.com;
ssl_certificate cert/4962168_www.abc.com.pem; #证书的pem
ssl_certificate_key cert/4962168_www.abc.com.key; #证书的key
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_connect_timeout 1200s;
proxy_send_timeout 1200s;
proxy_read_timeout 1200s;
proxy_pass http://127.0.0.1:8080;
}
}
- 需要注意的是服务器的443端口要打开,就是在安全组里面打开443端口,这个配置一下就可以了。
- 最后我们重启nginx服务
nginx -s reload
- 我们访问我们的域名,发现他是https连接安全的。