acme.sh - 迁移到certbot
确保以非root用户身份运行zend和节点跟踪器
- PM2 / Monit - 迁移到systemd
- 安装certbot
- 停止zend和zentracker
- 创建独立证书
- 将根CA证书添加到证书库
- 更新zen.conf证书位置
- 将非root用户添加到组中
- 启动zend并检查证书状态
- 启动zentracker并检查证书状态
- 从acme.sh清理文件
- 配置证书续订
Description | Command | |
---|---|---|
1 | 首先参见 PM2 / Monit - 迁移到systemd指南 | |
2 | 添加certbot存储库 注意:Debian 9跳过这一步 | 只限Ubuntu sudo add-apt-repository ppa:certbot/certbot -y |
3 | 添加stretch-backports存储库,更新包缓存并直接从stretch-backports安装certbot 注意: Ubuntu跳过这一步 | 只限Debian 9 echo "deb http://ftp.debian.org/debian stretch-backports main" | sudo tee -a /etc/apt/sources.list.d/stretch-backport.list sudo apt-get update sudo apt-get -t stretch-backports install certbot -y |
4 | 更新包缓存 | sudo apt-get update |
5 | 安装certbot | sudo apt-get install certbot -y |
6 | 停止zend 和 zentracker | sudo systemctl stop zend zentracker |
7 | 设置环境变量以匹配节点的完全限定域名 - 您需要键入此命令并将“FQDN”(引号''之间的值)更改为节点域注册中使用的值 | 不要在'FQDN'的位置使用大写字母,只需小写! FQDN='FQDN' 像示例一样只使用小写字母 Example Output zenops@node01:~$ FQDN='node01.zentest.win' |
8 | 将FQDN变量添加到.bashrc文件中,对于您创建的用户,这将确保它是持久的 | echo "export FQDN=$FQDN" >> $HOME/.bashrc |
9 | 在继续之前验证您的环境变量是否已从上面的步骤7和8正确设置,如果不是,您需要返回并重新执行这些步骤,然后再继续 Echo需要输出您的FQDN .bashrc的最后一行需要读取:export FQDN = <您的FQDN here> | echo $FQDN Example Output zenops@node01:~$ echo $FQDN sed -e 1b -e '$!d' $HOME/.bashrc Example Output zenops@node01:~$ sed -e 1b -e '$!d' $HOME/.bashrc |
10 | 安装证书(安全/超级节点网络的端到端TLS加密所需)certbot将用于生成和验证您的证书
注意:某些VPS提供程序启用了apache2,这会锁定端口80.如果在建立独立证书时无法绑定到端口80错误,则需要禁用apache2 | 禁用apache2(如果已启用,请参阅注释) sudo systemctl disable apache2 sudo systemctl stop apache2 sudo certbot certonly -n --agree-tos --register-unsafely-without-email --standalone -d $FQDN Example Output zenops@node01$ sudo certbot certonly -n --agree-tos --register-unsafely-without-email --standalone -d $FQDN Saving debug log to.../var/log/letsencrypt/letsencrypt.log Registering without email! Obtaining a new certificate Performing the following challenges: IMPORTANT NOTES: Donating to ISRG /............Let's Encrypt:..............https://letsencrypt.org/donate |
11 | 根据您的发行版所需复制根CA - 这个示例已经过Debian和Ubuntu的验证 NOTE: If you type this command, be sure to rename the certificate with a '.crt' extension, this is required for the next command to identify the certificate and add it to the certificate store. It is recommended to copy and paste, unless instructed otherwise where things may need replacing | Debian / Ubuntu系统 sudo cp /etc/letsencrypt/live/$FQDN/chain.pem /usr/local/share/ca-certificates/chain.crt |
12 | 使用在上一步中复制的根CA更新证书存储 | Debian / Ubuntu系统 sudo update-ca-certificates Example Output zenops@node01:~$ sudo update-ca-certificates |
13 | 替换zen.conf中的旧证书和密钥位置并添加“rpcworkqueue = 512” | sed -i "s|$HOME/.acme.sh/$FQDN/$FQDN.cer|/etc/letsencrypt/live/$FQDN/cert.pem|g" ~/.zen/zen.conf sed -i "s|$HOME/.acme.sh/$FQDN/$FQDN.key|/etc/letsencrypt/live/$FQDN/privkey.pem|g" ~/.zen/zen.conf echo "rpcworkqueue=512" >> ~/.zen/zen.conf |
14 | 将非root用户添加到'adm'和'systemd-journal'组 | sudo adduser $USER adm sudo adduser $USER systemd-journal |
15 | 修改/ etc / letsencrypt目录中的组所有权和权限,以允许非root用户对证书和私钥进行zend访问(通过ssl-cert组授予访问权限,非root用户已添加到该组) | 修改所有权 sudo chown -R root:sudo /etc/letsencrypt/ 修改权限 sudo chmod -R 750 /etc/letsencrypt/ |
16 | 将所有权应用于home中所有文件的非root用户并启动zend | sudo chown -R $USER:$USER ~/ && sudo systemctl start zend && sleep 30 |
17 | 检查zend是否已验证TLS证书 | zen-cli getnetworkinfo | grep tls_cert_verified Example Output zenops@node01:~$ zen-cli getnetworkinfo | grep tls_cert_verified |
18 | 启动zentracker并按照跟踪器中的日志检查“Cert check”是否为true,按CTRL + c退出 | sudo systemctl start zentracker sudo journalctl -fu zentracker Example Output zenops@node01~$ sudo journalctl -fu zentracker |
19 | 删除sudo和普通用户的现有crontab作业 | sudo crontab -r crontab -r |
20 | 删除.acme.sh和acme.sh目录并从.bashrc中删除acme.sh.env | sudo rm -r ~/{.acme.sh,acme.sh} sed -i "s|.\ \"$HOME/.acme.sh/acme.sh.env\"||g" ~/.bashrc |
21 | 删除socat和旧存储库 | sudo apt-get remove socat -y sudo apt-get -y autoremove |
配置证书续订 | ||
22 | 按照第10部分 - 配置证书续订,完成第11部分中的安装指南 |