免费将自己的网站升级成HTTPS
我们知道HTTPS的好处很多,比如通信方式是加密的安全的。随便打开访问一个大厂的网站,你会发现他们都是htpps。比如我们的掘金。那么我们如何将自己的Web网站也变成HTTPS呢?
我们知道HTTPS区别于HTTP,是因为HTTPS在HTTP的基础上增加了SSL协议。那么开始吧,兄弟们。
1、申请免费的SSL证书
很多代理机构都有申请证书的功能,比如我们最熟悉的阿里云、UCloud。这里以阿里云为例,因为UCloud需要公司的信息。我们以个人名义申请。
首先打开我上面的阿里云连接,选择免费的DV单域名证书,如下图:
免费的SSL证书的缺陷就是单域名即一张SSL证书只能绑定一个二级域名。而且每一年得申请一次证书。不过对我们个人开发者而言,完全够用了。
2、登录你的阿里云账号
必须登录,不登陆怎么买?不多解释。
3、创建证书
在SSL证书控制台,选择免费证书->创建证书20/20。我这里之前使用过一个,所以是19。
创建完成之后,会创建一个证书实例,点击证书申请
4、证书申请
点击完成之后,会在右侧生成弹窗。
- 1、输入你的二级域名
- 2、如果你可以登录你的域名管理控制台,可以选择手工DNS验证,因为下一步将生成验证信息,需要你在域名控制台的域名解析里,将信息配置在里面。作为个人开发者,你肯定可以登录的吧;如果你真没有,那么你就选文件验证吧。
- 输入你的个人信息。
- 输入你的所在地。
- CSR的生成方式,你也看到提示了。如果你没有要求,就系统生成,如果你真的需要自己的,就手动填写。
点击下一步。
出现了DNS解析配置,上一步我已经说了,如果你有域名管理控制台的权限,那么就手工DNS验证。那么接下来就需要配置DNS解析记录。
5、配置DNS解析记录
我的域名是在UCloud购买的,所以这里以UCloud为例。
点击解析。在新页面点击右上角的添加记录。
这里填写阿里云生成的信息。前为阿里云,后为Ucloud
- 域名授权验证类型=记录类型
- 主机记录 = 主机记录(注意:这里不是写你绑定的二级域名,而是阿里云生成的信息,这是验证通道。)
- 记录值=记录值
这个信息可以在SSL证书颁布完毕之后删除。
6、验证DNS
在阿里云,第三步验证DNS是否正确下,点击验证。如果你在UCloud配置的DNS解析记录正确,会提示验证成功,那么你就可以点击提交审核,等待审核了。
7、等待审核
审核很快,也就几分钟的样子,耐心等待一下吧!
8、下载证书
如果你是阿里云的服务器,可以点击部署,自动化完成部署,因为我这里不是阿里云的,所以只能点击下载。
下载的时候,因为的我Web服务是通过nginx转发的,所以这里我们下载nginx的证书。
下载完,解压之后会有两个文件,一个pom文件一个key文件。
9、上传证书
将这两个文件上传至你的服务器上的任意文件夹内,最好上传至你的nginx的文件夹下,一是以后你知道这两个文件在哪,二是你知道这两个文件用来干嘛。如果你随便一扔,时间长了,估计就会忘了。
我这里上传至/etc/nginx/cert。
10 、配置nginx
①、新增443端口
因为443端口就是主要是用于HTTPS服务。nginx的配置如下:
server {
listen 443;
server_name www.xxx.com;
ssl on;
ssl_certificate /etc/nginx/cert/xxx.com.pem;
ssl_certificate_key /etc/nginx/cert/xxx.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
}
- 将server_name换成你自己的二级域名。
- ssl_certificate换成你自己的从阿里云下载的pom文件
- ssl_certificate_key 换成你自己的从阿里云下载的key文件
②、将从http进来的转发到https
比如你的网站是80端口,只需要加入rewrite ^(.*)$ https://$host$1;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name www.xxx.com;
gzip on;
rewrite ^(.*)$ https://$host$1;
}
③、重启nginx
11、开放443端口
如果你是云服务器,都有更换外网防火墙的配置,如果你是实体服务器,直接将端口放行就行了。这个是基本操作,可以网上查一下,不过多介绍。
12、测试
打开我们的网站,成功的变成了https,哈哈,大功告成,如果你也想搭建我这个博客,可以参考我的文章手把手教你搭建自己的博客