Let‘s Encrypt 签发域名和泛域名https证书示范(最新亲测有效,踩了几个坑,有问题评论我给你答疑)

ACME自动安装

我用的ubuntu,如果你是centos则把apt-get 改为yum即可

# 我安装好后提示要安装socat,因此你们先安装上这个
apt-get install socat -y
# 安装acme
curl  https://get.acme.sh | sh
# 安装好后关闭终端重新打开

获取域名解析记录API key

DNSPod 域名解析

由于我是使用的是 DNSPod 解析服务,那就登录 DNSPod 官网生,成所需的 api id 和 api key。

操作方法:点击右上角头像 -> 我的账号 -> 账号中心 -> 密钥管理 -> 创建密钥

然后执行导入命令:

DNSPod

export DP_Id="YourID"
export DP_Key="YourKey"

PS:创建密钥具体位置,可能随网站改版而略有调整

万网/阿里云 域名解析

如果你是使用万网/阿里云的 NDS 解析:

操作方法:点击右上角头像 -> 选择 AccessKey -> 点击开始使用子用户AccessKey -> 起个自定义名称 -> 搜索 NDS -> 选择 系统 AliyunDNSFullAccess

然后执行导入命令:

AliYun

export Ali_Key="YourKey"
export Ali_Secret="YourSecret"

执行命令

# 注册他们的账号(我按网上的不行,提示我要注册他们账号)
acme.sh --register-account -m xxxxxxxxxxxx@qq.com
# haha.com代表你的域名,例如 taobao.com  --dns参数是配置你的域名供应商 我目前知道的是阿里云的是dns_ali,dnspod的是dns_dp,这个其他的可能要去他们网站看他们是怎么定义的,我阿里云是成功的,遇到错误他们会显示的,你按照提示的网址去看错误码对应的信息解决即可,另外你要确认你的域名解析到了这台机器上来。否则验证不通过!
# 另外就是他们这个地址,我ping了看了,网络不太稳定,所以要多试,我的话当然不想靠运气了,我用电脑ping了之后我直接拿他IP和域名添加到了/etc/hosts里,固定住IP避免解析不到
acme.sh --issue --dns dns_ali -d haha.com -d *.haha.com

在这里插入图片描述

打生成域名证书(需要哪个打哪个)

# 我在我nginx下面建立了个目录 certs,后面更新证书会通过你传入的reloadcmd来重启nginx
acme.sh --installcert -d xx.cn  --key-file /usr/local/openresty/nginx/certs/xx.cn-key.pem --fullchain-file /usr/local/openresty/nginx/certs/x-cert.pem --reloadcmd "nginx -s reload"x

把证书配置到nginx(第一次配需要)

让80 永久性跳转到443去
主要是要加下面这两行,后面的是我的示范

ssl_certificate /usr/local/openresty/nginx/certs/x-cert.pem;
ssl_certificate_key /usr/local/openresty/nginx/certs/xx.cn-key.pem;
 # 官网
    server {
        listen 80;
        server_name  www.xx.cn xx.cn default_server;
        charset utf-8;
        access_log  logs/www.xx.cn.access.log  main;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header Referer $http_referer;
        proxy_set_header X-Real-User $remote_user;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        location / {
            return 301 https://www.xx.cn;
        }


    }

    server {
        listen 443 ssl ;
        server_name  www.xx.cn xx.cn default_server;
        ssl_certificate /usr/local/openresty/nginx/certs/x-cert.pem;
        ssl_certificate_key /usr/local/openresty/nginx/certs/xx.cn-key.pem;
        charset utf-8;
        #set Server Name
        access_log  logs/www.xx.cn.access.log  main;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header Referer $http_referer;
        proxy_set_header X-Real-User $remote_user;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        location / {
            proxy_pass http://www.xx.cn;
        }
        location ~ .*\.(js|css|gif|jpg|jpeg|png|bmp|swf|flv|html|htm)$ {
            proxy_cache_use_stale error timeout http_500 http_502  http_503 http_504;
            proxy_cache my_cache;
            proxy_cache_key $host$uri$is_args$args;
            proxy_cache_valid 30d;
            #proxy_ignore_headers Cache-Control;
            add_header X-Cache $upstream_cache_status;
            add_header X-Via $server_addr;
            proxy_pass http://www.xx.cn;
        }

}

其他的也是同样的道理,照着弄就行

在这里插入图片描述

posted @ 2022-01-17 23:38  HumorChen99  阅读(98)  评论(0编辑  收藏  举报  来源