利用acme.sh免费建立https连接

811 阅读2分钟

前言

之前做过一个人脸登录的demo,本来想部署到线上的,结果发现需要https连接才可以调用浏览器的摄像头,在阿里云上一看,竟然需要4000多蚊一年,立马劝退了哈哈哈。这时候主管让我不要慌,给我推荐了acme.sh,说让我回去研究一下,可以免费申请证书。

acme.sh介绍

  • GitHub地址 github.com/acmesh-offi…
  • acme.sh是一个基于Shell脚本的Let's Encrypt证书申请和管理工具,它可以用来自动化证书的生成、更新和安装。

具体操作

1.安装acme.sh

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

2.注册账号

如果之前已经注册过Let's Encrypt账号,并且希望在acme.sh中使用该账号,可以通过在--register-account参数后添加--accountemail选项来指定该账号的电子邮件地址,例如:

acme.sh --register-account --accountemail my@example.com

3.设置阿里云的API Key和Secret

因为使用的是阿里云的DNS API,所以需要设置阿里云的API Key和Secret。如果需要使用其他DNS服务商的API,可以查看acme.sh的文档进行配置。

export Ali_Key="AccessKey ID"
export Ali_Secret="AccessKey Secret"

4.申请证书

acme.sh --issue -d example.com -d www.example.com --dns dns_ali

5.安装证书

  • 先找到私钥和证书的位置,默认会在/root/.acme.sh/example.com/文件夹下,可是我的就没有,然后我在example.com_ecc文件夹中找到了,所以就example.com.keyexample.com.fullchain.cercopy到/root/.acme.sh/example.com/目录下

acme.png

  • 找到你服务器上nginx目录,我的是存放在/usr/local/nginx
  • 执行一下命令,记得要把example.com替换成你的域名
acme.sh --install-cert -d example.com \
--key-file /usr/local/nginx/conf/example.com.key \
--fullchain-file /usr/local/nginx/conf/example.com.fullchain.cer \
--reloadcmd "/usr/local/nginx/sbin/nginx -s reload"

5.Nginx中启用HTTPS

到这步已经成功95%啦

打开nginx.conf文件,如果你想别人直接访问example.com重定向到https://example.com,就像我这样配置,改完保存并关闭文件,然后重新启动Nginx服务

server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl; 
    server_name example.com; 
    
    ssl_certificate /usr/local/nginx/conf/example.com.fullchain.cer; 
    ssl_certificate_key /usr/local/nginx/conf/example.com.key; 
    
    ssl_session_timeout 1d; 
    ssl_session_cache shared:SSL:50m; 
    ssl_session_tickets off; 
    
    ssl_protocols TLSv1.2 TLSv1.3; 
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
    ssl_prefer_server_ciphers on; 
    
    location / { 
        root /var/www/html; 
        index index.html; 
    }
}

这样子你的网站就建立起https连接啦,可以立马打开example.comhttps://example.com试试啦,又省了几千蚊哈哈哈

END

  • 希望这篇文章可以帮助到有需要的小伙伴们,有问题可以评论或私信我呀🤞🤞