之前都说部署SSL证书后会影响网站访问速度,再加上自己也不懂代码,就一直懒得弄,后来想换友链,发现很多大佬的博客友链交换要求中都提到必须支持“http(s)”,所以就耐心花时间整理了下,发现也没那么麻烦,头一个站点花了点时间,后面一个站点做好也就几分钟。

我这边使用的是阿里云的云服务器ECS,用不了一键部署功能,我记得之前公司做了个阿里的云建站,好像是可以一键部署的。然后服务器用的是宝塔控制面板,不用改代码,复制粘贴,爽歪歪呀。

先到阿里云SSL证书控制台申请免费的SSL证书,这个阿里云免费SSL证书申请教程很详细,就不说了,然后阿里云这篇教程也很老了,现在SSL免费证书申请在域名验证时,如果是在万网买的域名,系统会直接自动验证,都不用自己做解析了(现在每年有20个免费证书额度)。

证书申请后,下载到本地,一个压缩包,加压后是证书文件和密钥。

ssl证书文件
ssl证书文件包解压后是这样

解压证书文件后,根据服务器系统版本安装,我的是Nginx,然后看了阿里云的《在Nginx(或Tengine)服务器上安装证书》教程,发现是直接敲代码配置的,不懂,打开宝塔发现居然可以直接复制粘贴,方便啊。下面是用宝塔面板上传证书:

1、打开宝塔首页/网站管理-打开要上传SSL证书的网站的“设置”-打开“SSL”其他证书。

宝塔面板上传SSL证书文件
宝塔面板上传SSL证书文件

2、用TXT打开解压的两个证书文件,注意,不要复制错了,注意后缀pem和key,然后把内容分别复制粘贴到对应的框里,点击“保存”。

3、打开SSL-证书夹,发现里面已经有刚才上传的证书文件了,点击“部署”,显示“设置成功”。

宝塔面板部署SSL证书
宝塔面板部署SSL证书

4、设置HTTP请求自动跳转HTTPS。这里我刚开始就弄错了,宝塔系统上传证书文件,会默认添加一行代码,导致重启后重定向代码没有生效,http和http都能正常访问,而不是http跳转至https。

所有的HTTP访问自动跳转到HTTPS页面
所有的HTTP访问自动跳转到HTTPS页面

咨询了群内大佬后找到原因了,就是要删除系统默认的这行代码:

listen 80;

然后下面添加代码:

server {
    listen 80;
    server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
    rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    location / {
        index index.html index.htm;
    }
}

5、保存,重启Nginx服务器,SSL证书生效了。

然后site了之前收录的旧链接,点击访问也都跳转至“https”了。

SSL证书生效了
SSL证书生效了


七岁和十七岁之间有十年,十七岁和二十七岁之间有一生。