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;
}
}
其他的也是同样的道理,照着弄就行
本文来自博客园,作者:HumorChen99,转载请注明原文链接:https://www.cnblogs.com/HumorChen/p/18039507
分类:
Linux
, 加解密&&密码学
标签:
网络
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2020-01-17 教新手如何读错误信息根据错误信息解决BUG
2020-01-17 SpringBoot多线程进行异步请求的处理