当前位置:首页 - Linux

使用acme申请ssl https证书,并自动续期

作者:高景洋 日期:2023-03-18 19:50:31 浏览次数:685

如何使用acme 申请https免费证书? 按下列步骤走,简单方便,可实现批量


1、安装acme.sh

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

安装程序会自动做以下操作:

  • 自动把 acme.sh 安装到你的 home 的.acme.sh目录下,即~/.acme.sh/

  • 自动创建一个 bash 的 alias, 方便你的使用: alias acme.sh=~/.acme.sh/acme.sh

  • 自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书

2、更改默认证书


执行 : acme.sh --set-default-ca --server letsencrypt
    如果提示:-bash: acme.sh: command not found

    则需要执行:source ~/.bashrc

    然后,再执行 acme.sh --set-default-ca --server letsencrypt


3、生成证书

    执行 : acme.sh --issue -d www.*****.com --nginx /usr/local/nginx/conf/conf.d/www.****.com.conf

    如果提示 nginx command not found 

    则先建立nginx软件,后再执行上述命令:ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx


4、执行第三步后,会提示生成的证书位置


5、copy&安装证书

    

acme.sh --install-cert -d www.*****.com \
--key-file /root/.acme.sh/www.*****.com_ecc/www.*****.com.key \
--fullchain-file /root/.acme.sh/www.*****.com_ecc/fullchain.cer \
--reloadcmd "nginx -s reload"


6、nginx配置

server {
listen 443 ssl;
server_name www.*****.com;

ssl_certificate /root/.acme.sh/www.*****.com_ecc/fullchain.cer;
ssl_certificate_key /root/.acme.sh/www.*****.com_ecc/www.*****.com.key;

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;

ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
error_page 404 /404.html;

location /404.html {
root /usr/local/nginx/html;
#index index.html index.htm;
#proxy_pass http://127.0.0.1:8080;
}

location / {
#root html;
#index index.html index.htm;
proxy_pass http://127.0.0.1:8091;
}
}


7、nginx 80端口配置增加 跳转

if ($host = '*****.com' ){
rewrite ^/(.*)$ https://www.*****.com/$1 permanent;
}

如果配置完成后,可以跳转到 https ,但是页面无法打开,请检查服务器是否开始了 443端口,如果443端口没有打开,开启后即可访问。

本文永久性链接:
<a href="http://r4.com.cn/art225.aspx">使用acme申请ssl https证书,并自动续期</a>
当前header:Host: r4.com.cn X-Host1: r4.com.cn X-Host2: r4.com.cn X-Host3: 127.0.0.1:8080 X-Forwarded-For: 44.197.231.211 X-Real-Ip: 44.197.231.211 X-Domain: r4.com.cn X-Request: GET /art225.aspx HTTP/1.1 X-Request-Uri: /art225.aspx Connection: close User-Agent: CCBot/2.0 (https://commoncrawl.org/faq/) Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 If-Modified-Since: Mon, 02 Oct 2023 08:45:49 GMT Accept-Encoding: br,gzip