免费将自己的网站升级成HTTPS

1,968 阅读4分钟

「本文已参与好文召集令活动,点击查看:后端、大前端双赛道投稿,2万元奖池等你挑战!

免费将自己的网站升级成HTTPS

我们知道HTTPS的好处很多,比如通信方式是加密的安全的。随便打开访问一个大厂的网站,你会发现他们都是htpps。比如我们的掘金。那么我们如何将自己的Web网站也变成HTTPS呢?

我们知道HTTPS区别于HTTP,是因为HTTPS在HTTP的基础上增加了SSL协议。那么开始吧,兄弟们。

1、申请免费的SSL证书

很多代理机构都有申请证书的功能,比如我们最熟悉的阿里云UCloud。这里以阿里云为例,因为UCloud需要公司的信息。我们以个人名义申请。

首先打开我上面的阿里云连接,选择免费的DV单域名证书,如下图:

image-20210722193729537.png

免费的SSL证书的缺陷就是单域名即一张SSL证书只能绑定一个二级域名。而且每一年得申请一次证书。不过对我们个人开发者而言,完全够用了。

2、登录你的阿里云账号

必须登录,不登陆怎么买?不多解释。

3、创建证书

在SSL证书控制台,选择免费证书->创建证书20/20。我这里之前使用过一个,所以是19。

image-20210722194343607.png

创建完成之后,会创建一个证书实例,点击证书申请

image-20210722194600015.png

4、证书申请

点击完成之后,会在右侧生成弹窗。

  • 1、输入你的二级域名
  • 2、如果你可以登录你的域名管理控制台,可以选择手工DNS验证,因为下一步将生成验证信息,需要你在域名控制台的域名解析里,将信息配置在里面。作为个人开发者,你肯定可以登录的吧;如果你真没有,那么你就选文件验证吧。
  • 输入你的个人信息。
  • 输入你的所在地。
  • CSR的生成方式,你也看到提示了。如果你没有要求,就系统生成,如果你真的需要自己的,就手动填写。

image-20210722194858425.png

点击下一步。

image-20210722195619734.png

出现了DNS解析配置,上一步我已经说了,如果你有域名管理控制台的权限,那么就手工DNS验证。那么接下来就需要配置DNS解析记录。

5、配置DNS解析记录

我的域名是在UCloud购买的,所以这里以UCloud为例。

image-20210722200307059.png

点击解析。在新页面点击右上角的添加记录。

image-20210723090745512.png

这里填写阿里云生成的信息。前为阿里云,后为Ucloud

  • 域名授权验证类型=记录类型
  • 主机记录 = 主机记录(注意:这里不是写你绑定的二级域名,而是阿里云生成的信息,这是验证通道。)
  • 记录值=记录值

这个信息可以在SSL证书颁布完毕之后删除。

6、验证DNS

在阿里云,第三步验证DNS是否正确下,点击验证。如果你在UCloud配置的DNS解析记录正确,会提示验证成功,那么你就可以点击提交审核,等待审核了。

7、等待审核

审核很快,也就几分钟的样子,耐心等待一下吧!

8、下载证书

如果你是阿里云的服务器,可以点击部署,自动化完成部署,因为我这里不是阿里云的,所以只能点击下载。

image-20210723091804582.png

下载的时候,因为的我Web服务是通过nginx转发的,所以这里我们下载nginx的证书。

image-20210723092022895.png

下载完,解压之后会有两个文件,一个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端口

如果你是云服务器,都有更换外网防火墙的配置,如果你是实体服务器,直接将端口放行就行了。这个是基本操作,可以网上查一下,不过多介绍。

image-20210723095601445.png

12、测试

打开我们的网站,成功的变成了https,哈哈,大功告成,如果你也想搭建我这个博客,可以参考我的文章手把手教你搭建自己的博客

image-20210723094145189.png