如何申请免费https证书?

现在网络对数据传输的安全性要求越来越高,许多情况下都需要https协议才能访问。但是https的证书价格又比较昂贵,这种时候如果又免费的证书可以使用就好了。letsencrypt提供了这样的免费证书。

在github上有一个仓库acme.sh,可以申请到免费的ssl证书。下面我就带领大家熟悉下此仓库申请证书的使用流程

# 安装脚本
curl https://get.acme.sh | sh # 安装
sourcr ~/.bashrc # 重新加载环境变量

# 此处需要注意设置你的域名是能访问到的
# 会在网站项目中创建文件夹.well-known
# http://www.your-app.com/.well-known/ 
acme.sh --issue -d www.your-app.com -w /home/web/www/pay-app-final/public
# 这部执行完成之后会把申请成功的证书放在~/.acme.sh/目录里s
# 将证书安装到网站的路径下
acme.sh --installcert -d www.your-app.com \
               --keypath       /home/web/www/ssl/app-pay.wechat.com.key  \
               --fullchainpath /home/web/www/ssl/app-pay.wechat.com.key.pem \
               --reloadcmd     "sudo service nginx force-reload"
# 生成 dhparam.pem 文件,如果没有此文件,你的网站安全级别会被评为B
openssl dhparam -out /home/web/www/ssl/dhparam.pem 2048
# 修改nginx启用SSL

http {
  # 新增
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;
  # 兼容其他老浏览器的 ssl_ciphers 设置请访问 https://wiki.mozilla.org/Security/Server_Side_TLS

  server {
    listen 80 default_server;
    # 新增
    listen 443 ssl;
    ssl_certificate         /home/web/www/ssl/app-pay.wechat.com.key.pem;
    ssl_certificate_key     /home/web/www/ssl/app-pay.wechat.com.key;
    # ssl_dhparam 
    ssl_dhparam             /home/web/www/ssl/dhparam.pem;

    # 其他省略
  }
}

# 检查nginx的配置并重新启动
sudo service nginx configtest
sudo service nginx restart

Let's Encrypt 的证书有效期是 90 天的,你需要定期 renew 重新申请,这部分 acme.sh 以及帮你做了,在安装的时候往 crontab 增加了一行每天执行的命令

crontab -l # 查看定时任务

你可能感兴趣的:(如何申请免费https证书?)