30,779
社区成员
发帖
与我相关
我的任务
分享我们知道HTTPS的好处很多,比如通信方式是加密的安全的。随便打开访问一个大厂的网站,你会发现他们都是htpps。比如我们的CSDN。那么我们如何将自己的Web网站也变成HTTPS呢?
我们知道HTTPS区别于HTTP,是因为HTTPS在HTTP的基础上增加了SSL协议。那么开始吧,兄弟们。
很多代理机构都有申请证书的功能,比如我们最熟悉的阿里云、UCloud。这里以阿里云为例,因为UCloud需要公司的信息。我们以个人名义申请。
首先打开我上面的阿里云连接,选择免费的DV单域名证书,如下图:

免费的SSL证书的缺陷就是单域名即一张SSL证书只能绑定一个二级域名。而且每一年得申请一次证书。不过对我们个人开发者而言,完全够用了。
必须登录,不登陆怎么买?不多解释。
在SSL证书控制台,选择免费证书->创建证书20/20。我这里之前使用过一个,所以是19。

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

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

点击下一步。

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

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

这里填写阿里云生成的信息。前为阿里云,后为Ucloud
这个信息可以在SSL证书颁布完毕之后删除。
在阿里云,第三步验证DNS是否正确下,点击验证。如果你在UCloud配置的DNS解析记录正确,会提示验证成功,那么你就可以点击提交审核,等待审核了。
审核很快,也就几分钟的样子,耐心等待一下吧!
如果你是阿里云的服务器,可以点击部署,自动化完成部署,因为我这里不是阿里云的,所以只能点击下载。

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

下载完,解压之后会有两个文件,一个pom文件一个key文件。
将这两个文件上传至你的服务器上的任意文件夹内,最好上传至你的nginx的文件夹下,一是以后你知道这两个文件在哪,二是你知道这两个文件用来干嘛。如果你随便一扔,时间长了,估计就会忘了。
我这里上传至/etc/nginx/cert。
因为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;
}
比如你的网站是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;
}
如果你是云服务器,都有更换外网防火墙的配置,如果你是实体服务器,直接将端口放行就行了。这个是基本操作,可以网上查一下,不过多介绍。

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

爱了爱了