上星期域名审核终于通过了,可让我好等。拿到域名第一件事肯定是把域名映射到自己的个人博客,中间也是遇到了许多操蛋的事情。
我是用nginx反向代理来实现的。
好了 进出入正题,nginx反向代理之后是http协议,每次自己访问自己的博客Chrome都提示该网站是不安全的
这对一个强迫症患者是不能忍的,然后去仔细了解了一下http和https协议。
什么是HTTP?
超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网>上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发>布和接收HTML页面的方法
发展历史:
版本 | 产生时间 | 内容 | 发展现状 |
---|---|---|---|
HTTP/0.9 | 1991年 | 不涉及数据包传输,规定客户端和服务器之间通信格式,只能GET请求 | 没有作为正式的标准 |
HTTP/1.0 | 1996年 | 传输内容格式不限制,增加PUT、PATCH、HEAD、 OPTIONS、DELETE命令 | |
HTTP/1.1 | 1997年 | 持久连接(长连接)、节约带宽、HOST域、管道机制、分块传输编码 | 2015年前使用最广泛 |
HTTP/2 | 2015年 | 多路复用、服务器推送、头信息压缩、二进制协议等 | 逐渐覆盖市场 |
什么是HTTPS?
Https协议是以安全为目标的Http通道,简单来说就是Http的安全版。主要是在Http下加入SSL层(现在主流的是SLL/TLS),SSL是Https协议的安全基础。Https默认端口号为443。
升级https
首先你的域名要申请一个ssl证书,我的域名是在腾讯云购买的(基本都会提供免费证书的)
登录腾讯云到证书管理里面
选择免费的证书
填写一下基本信息
然后等个一小时应该差不多就审核通过了,点击下载会下载一个压缩文件
目录结构
我这边用的是nginx。
nginx配置https
把之前下载的文件nginx里的 .crt 和 .key 文件上传到nginx的config目录
niginx.conf
upstream backend {
server localhost:8080; # Solo 监听端口
}
server {
listen 443 ssl; #https监听443端口
server_name duyunzhi.cn; # 博客域名
ssl_certificate 1_www.duyunzhi.cn_bundle.crt;
ssl_certificate_key 2_www.duyunzhi.cn.key;
access_log off;
location / {
proxy_pass http://backend$request_uri;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 10m;
}
}
配置http转发到https
server{
listen 80;
server_name www.duyunzhi.cn;
rewrite ^/(.*)$ https://www.duyunzhi.cn:443/$1 permanent;
}
然后测试一下你的配置文件格式是否正确
nginx -t
返回如下信息说明格式没问题
nginx: the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/webserver/nginx/conf/nginx.conf test is successful
最后重新加载一下nginx的配置文件
nginx -s reload
搞定!