废话:

因为服务器在阿里云,所以首先想到的是阿里云的免费证书,但是考虑到免费期限只有一年,只好算了。
最后还是使用永久免费的Let's Encrypt SSL证书吧(白嫖一时爽,一直白嫖一直爽)
最后我选择使用 acme.sh 的方式获取证书。因为acme.sh还能自动配置DNS,不用再去阿里云控制台解析txt记录

申请Let's Encrypt 免费SSL证书

获取acme.sh

curl https://get.acme.sh | sh

如果和下图一样,说明安装成功

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   775    0   775    0     0   5053      0 --:--:-- --:--:-- --:--:--  5065
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  191k  100  191k    0     0   467k      0 --:--:-- --:--:-- --:--:--  466k
[Wed Apr  8 13:27:18 CST 2020] Installing from online archive.
[Wed Apr  8 13:27:18 CST 2020] Downloading https://github.com/acmesh-official/acme.sh/archive/master.tar.gz
[Wed Apr  8 13:27:21 CST 2020] Extracting master.tar.gz
[Wed Apr  8 13:27:21 CST 2020] It is recommended to install socat first.
[Wed Apr  8 13:27:21 CST 2020] We use socat for standalone server if you use standalone mode.
[Wed Apr  8 13:27:21 CST 2020] If you don't use standalone mode, just ignore this warning.
[Wed Apr  8 13:27:21 CST 2020] Installing to /root/.acme.sh
[Wed Apr  8 13:27:21 CST 2020] Installed to /root/.acme.sh/acme.sh
[Wed Apr  8 13:27:21 CST 2020] Installing alias to '/root/.bashrc'
[Wed Apr  8 13:27:21 CST 2020] OK, Close and reopen your terminal to start using acme.sh
[Wed Apr  8 13:27:21 CST 2020] Installing alias to '/root/.cshrc'
[Wed Apr  8 13:27:21 CST 2020] Installing alias to '/root/.tcshrc'
[Wed Apr  8 13:27:21 CST 2020] Installing cron job
1 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
[Wed Apr  8 13:27:21 CST 2020] Good, bash is found, so change the shebang to use bash as preferred.
[Wed Apr  8 13:27:22 CST 2020] OK
[Wed Apr  8 13:27:22 CST 2020] Install success!

安装过程中会自动为你创建 cronjob, 每天 0:01 分会自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书.

1 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" &> /var/log/acme.logs

把 acme.sh 安装到你的 home 目录下,方便使用

alias acme.sh=~/.acme.sh/acme.sh

查询 acme.sh 版本,若下图所示就说明成功了

[root@shuai ~]# acme.sh --version

https://github.com/acmesh-official/acme.sh
v2.8.6

获取证书

因为我的域名是在阿里云注册的,所以需要先前往 阿里云控制台 获取App_KeyApp_Secret
如果是在其他地方注册的话,可以参考 acme.sh 说明 自行修改

获取阿里云秘钥

# 替换成自己从阿里云获取到的秘钥
export Ali_Key="abcdefghijklmnopqrstuvwxyz"
export Ali_Secret="zyxwvutsrqpomnlkjihgfedcba"

生成证书

# 把 shuaiguoer.com 替换成自己的域名就好了
acme.sh --issue --dns dns_ali -d *.shuaiguoer.com -d shuaiguoer.com

然后在最下面会显示你证书的存放位置

配置Nginx

server
{
    listen 80 default_server;                   # 如果要求全部走https协议,可以去除这一行
    listen 443 ssl http2 default_server;         # 如果要求全部走https协议,这里可以去除ssl
    server_name shuaiguoer.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/shuai;

    ssl_certificate    /www/server/panel/vhost/cert/shuaiguoer.com/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/shuaiguoer.com/privkey.pem;

    # SSL优化
    # ssl_protocols 和 ssl_ciphers 可以用来限制连接只包含 SSL/TLS 的加強版本和算法
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    # 使用ssl_session_cache优化https下Nginx的性能,简化『握手』阶段
    ssl_session_cache shared:SSL:10m;       # 配置共享会话缓存大小
    ssl_session_timeout 10m;                # 配置会话超时时间

重启Nginx服务

# 检查nginx配置文件语法错误
nginx -t
nginx: the configuration file /www/server/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /www/server/nginx/conf/nginx.conf test is successful

# 重载NGINX配置文件
service nginx force-reload

访问网站

然后就会发现https出现了

Google浏览器提示不安全?

 

这时只需要:把网站里所有以http开头的链接替换成https开头的链接就好了

配合七牛云ssl实现全站加速

检查acme.sh的计划任务看看证书续费是否正常运行

[root@shuai ~]# "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" --force
...

切换到证书所在目录并查看

[root@shuai ~]# cd /www/server/panel/vhost/cert/shuaiguoer.com/
[root@shuai shuaiguoer.com]# ls
ca.cer         fullchain.pem  privkey.pem         shuaiguoer.com.conf  shuaiguoer.com.csr.conf
fullchain.cer  info.json      shuaiguoer.com.cer  shuaiguoer.com.csr   shuaiguoer.com.key

查看证书内容

[root@shuai shuaiguoer.com]# cat shuaiguoer.com.cer
-----BEGIN CERTIFICATE-----
# 证书内容
-----END CERTIFICATE-----

查看证书私钥

[root@shuai shuaiguoer.com]# cat shuaiguoer.com.key
-----BEGIN RSA PRIVATE KEY-----
# 证书私钥
-----END RSA PRIVATE KEY-----

上传自有证书

七牛云证书管理

qny_ssl.png

证书备注名:随意填
证书内容:上面查看到的内容
证书私钥:上面查看到的私钥

然后确认上传以后,就可以在 我的证书里面看到
qny_ssl2.png

配置HTTPS证书

域名管理-配置-HTTPS配置-修改配置-选择已有证书-确认!

qny_ssl3.pngqny_ssl4.png

Last modification:August 2nd, 2020 at 11:12 am
如果觉得我的文章对你有用,请随意赞赏