使用Acme.sh工具为Ubuntu安装免费ssl证书
安装acme.sh
1 | curl https://get.acme.sh | sh -s email=my@example.com |
或者
1 | wget -O - https://get.acme.sh | sh -s email=my@example.com |
如果上面两个连接不成功,可以用下面国内的源:
1 | git clone https://gitee.com/neilpang/acme.sh.git |
acme会安装到~/acme.sh目录中,安装完成后重新加载Bash:
1 | source ~/.bashrc |
配置acme.sh
开启自动更新:
1 | acme.sh --upgrade --auto-upgrade |
选择默认 CA
目前 acme.sh 支持四个正式环境 CA,分别是 Let’s Encrypt、Buypass、ZeroSSL 和 SSL.com,默认使用 ZeroSSL,如果需要更换可以使用如下命令:
切换 Let’s Encrypt
1 | acme.sh --set-default-ca --server letsencrypt |
切换 Buypass
1 | acme.sh --set-default-ca --server buypass |
切换 ZeroSSL
1 | acme.sh --set-default-ca --server zerossl |
切换 SSL.com
1 | acme.sh --set-default-ca --server ssl.com |
切换 Google Public CA
1 | acme.sh --set-default-ca --server google |
使用 DNS 验证签发证书
家用网络都封了80端口,不能使用正常模式申请证书,只能使用DNS验证的模式申请,acme.sh 的 DNS API 模式申请证书:
1 | acme.sh --issue --dns dns_cf -d example.com -d *.example.com |
acme.sh 支持几十种 DNS 插件,常用的下面几种,:
阿里云 –dns dns_ali
1 | export Ali_Key="1234" |
Dnspod –dns dns_dp
1 | export DP_Id="1234" |
Godaddy –dns dns_gd
1 | export GD_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" |
AWS –dns dns_aws
1 | export AWS_ACCESS_KEY_ID="sdfsdfsdfljlbjkljlkjsdfoiwje" |
Linode –dns dns_linode
1 | export LINODE_API_KEY="xxxxxxxx" |
证书申请完成后会提示证书位置:
1 | [Sat Jul 29 11:51:54 AM UTC 2023] Your cert is in: /root/.acme.sh/redtux.cn/redtux.cn.cer |
安装证书
然后我们可以安装证书
Nginx
1 | acme.sh --install-cert -d example.com \ |
对应的 Nginx 配置指定证书文件
1 | ssl_certificate /etc/nginx/ssl/example.com.crt; |
Apache
1 | acme.sh --install-cert -d example.com \ |
对应的 Apache 配置指定证书文件
1 | SSLCertificateFile /etc/apache2/ssl/example.com.crt |
使用Acme.sh工具为Ubuntu安装免费ssl证书
You need to set
install_url
to use ShareThis. Please set it in _config.yml
.