使用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
2
3
git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m my@example.com

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
2
export Ali_Key="1234"
export Ali_Secret="sADDsdasdgdsf"

Dnspod –dns dns_dp

1
2
export DP_Id="1234"
export DP_Key="sADDsdasdgdsf"

Godaddy –dns dns_gd

1
2
export GD_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export GD_Secret="asdfsdfsfsdfsdfdfsdf"

AWS –dns dns_aws

1
2
export AWS_ACCESS_KEY_ID="sdfsdfsdfljlbjkljlkjsdfoiwje"
export AWS_SECRET_ACCESS_KEY="xxxxxxx"

Linode –dns dns_linode

1
export LINODE_API_KEY="xxxxxxxx"

证书申请完成后会提示证书位置:

1
2
3
4
[Sat Jul 29 11:51:54 AM UTC 2023] Your cert is in: /root/.acme.sh/redtux.cn/redtux.cn.cer
[Sat Jul 29 11:51:54 AM UTC 2023] Your cert key is in: /root/.acme.sh/redtux.cn/redtux.cn.key
[Sat Jul 29 11:51:54 AM UTC 2023] The intermediate CA cert is in: /root/.acme.sh/redtux.cn/ca.cer
[Sat Jul 29 11:51:54 AM UTC 2023] And the full chain certs is there: /root/.acme.sh/redtux.cn/fullchain.cer

安装证书

然后我们可以安装证书

Nginx

1
2
3
4
5
acme.sh --install-cert -d example.com \
--key-file /etc/nginx/ssl/example.com.key \
--fullchain-file /etc/nginx/ssl/example.com.crt \
--ca-file /etc/nginx/ssl/example.com.ca.crt \
--reloadcmd "systemctl restart nginx"

对应的 Nginx 配置指定证书文件

1
2
3
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_trusted_certificate /etc/nginx/ssl/example.com.ca.crt;

Apache

1
2
3
4
5
acme.sh --install-cert -d example.com \
--key-file /etc/apache2/ssl/example.com.key \
--fullchain-file /etc/apache2/ssl/example.com.crt \
--ca-file /etc/apache2/ssl/example.com.ca.crt \
--reloadcmd "curl https://ssl-config.mozilla.org/ffdhe2048.txt >> /etc/apache2/ssl/example.com.crt && systemctl restart apache2"

对应的 Apache 配置指定证书文件

1
2
SSLCertificateFile      /etc/apache2/ssl/example.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/example.com.key

使用Acme.sh工具为Ubuntu安装免费ssl证书

http://tux.red/2023/08/05/Nas/ubuntu-ssl-acme/

作者

redtux

发布于

2023-08-05

更新于

2023-08-05

许可协议

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

评论

You forgot to set the shortname for Disqus. Please set it in _config.yml.