## 背景说明 a. 研究frps服务器的acme部署情况。 ​ 时隔久远,重新确认frps服务器的证书安装途径和现状。 b. 将gitea部署到现在frps的服务器上。 ## 确认acme的状态 1. 确认当前证书 `acme.sh --list` [root@ngork ~]# acme.sh --list Main_Domain KeyLength SAN_Domains CA Created Renew dev.woyue.org "" *.dev.woyue.org ZeroSSL.com Sat Sep 18 16:42:15 UTC 2021 Wed Nov 17 16:42:15 UTC 2021 2. 确认自动更新 `crontab -e` o1 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null 3. 查找acme.sh文件 `find / -name acme.sh` 可以定位到当前服务器,这个文件位于: /root/.acme.sh/acme.sh 这里要注意,ls是显示不出来.acme.sh的,可以直接cd .acme.sh 4. 查看.acme.sh目录下的内容 [root@ngork .acme.sh]# ls -l total 240 -rw-r--r-- 1 root root 315 Sep 19 00:42 account.conf -rwxr-xr-x 1 root root 205958 Jul 20 11:50 acme.sh -rw-r--r-- 1 root root 78 May 17 2020 acme.sh.csh -rw-r--r-- 1 root root 78 May 17 2020 acme.sh.env drwxr-xr-x 4 root root 4096 Jul 20 11:50 ca drwxr-xr-x 2 root root 4096 Jul 20 11:50 deploy drwxr-xr-x 3 root root 4096 May 19 2020 dev.woyue.org drwxr-xr-x 2 root root 4096 Jul 20 11:50 dnsapi -rw-r--r-- 1 root root 252 Oct 27 00:41 http.header drwxr-xr-x 2 root root 4096 Jul 20 11:50 notify 其中,account.conf中有阿里云的具有DNS操作权限的账户的key和secret。 ## 添加证书 1. 申请安装证书。加--debug参数可以显示更多细节 `acme.sh --debug --issue --dns dns_ali -d git.woyue.org` 2. 安装完毕后,检验是否配置自动任务 `crontab -e` 3. 确认当前证书 `acme.sh --list` ## 安装证书 1. 复制证书: `mkdir -p /srv/certbot/conf/live/git.woyue.org` `acme.sh --installcert -d git.woyue.org \ --key-file /srv/certbot/conf/live/git.woyue.org/privkey.pem \ --fullchain-file /srv/certbot/conf/live/git.woyue.org/fullchain.pem \ --reloadcmd "docker restart nginx_nginx_1"` 注意,最后的nginx_nginx_1或nginx_server为nginx容器的名称。请根据实际情况修改。**或不加此参数,手动重启nginx**。 2. 生成:dhparams文件 `openssl dhparam -out /srv/certbot/conf/ssl-dhparams.pem 2048` ## 使用证书 例如,要使用上述证书,则nginx的docker对应etc/letsencrypt的目录就是/srv/certbot/conf。比如说,conf文件里引用的密钥文件路径为: ssl_certificate /etc/letsencrypt/live/git.woyue.org/fullchain.pem 那么,docker mount的路径就应该是:-v /srv/certbot/conf:/etc/letsencrypt 为此,检查一下当前的nginx的volume: `docker inspect nginx_nginx_1` 能看到: ...... "Mounts": [ ...... { "Type": "bind", "Source": "/srv/certbot/conf", "Destination": "/etc/letsencrypt", "Mode": "rw", "RW": true, "Propagation": "rprivate" }, ...... 可见,当前的nginx docker实例配置已经满足要求。 ## 后续 参看Gitea项目的Readme。