前言
昨天打开软件,发现证书过期了,今天就来更新证书。
连接aws服务器
ssh -i “xxx.pem” ec2-user@xxxx
下载acme并配置环境
git clone https://github.com/Neilpang/acme.sh.git
cd ./acme.sh
./acme.sh --install
source ~/.bashrc
配置邮箱地址
acme.sh --register-account -m xxx@xxx.com
要不然会出现如下错误
构建证书
acme.sh --issue -d www.xxx.org --standalone --nginx --force --server
–server:表示测试是否可用。避免生成过多的证书。
下载socat
sudo yum install socat
再次构建证书
关闭80端口
sudo nginx -s stop
权限不足
检查顺序:
- 防火墙设置
- 解析记录是否生效
- 如果使用
--webroot
自定义路径,检查路径权限 80
端口是否被占用- 关闭占用的服务,比如nginx。
- socat没有端口权限
sudo setcap 'cap_net_bind_service=+ep' /usr/bin/socat
构建证书成功
成功之后删除server命令再次执行一次。
生成证书
acme.sh --install-cert -d www.xxx.org \
--key-file /path/privkey.pem \
--fullchain-file /path/fullchain.pem \
配置nginx并启动
server {
server_name www.xxx.org;
listen 443 ssl;
location / {
proxy_pass http://127.0.0.1:80;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
}
ssl_certificate keys/fullchain.pem;#配置证书位置
ssl_certificate_key keys/privkey.pem;#配置秘钥位置
}
启动即可。
sudo nginx -c /etc/nginx/nginx.conf