我在 aws ec2 上有一个 wordpress 网站,该网站由其他人设置,通过 Let's Encrypt 自动更新其 SSL 证书。
自动续订最近已停止,证书已过期。
我尝试运行docker exec {container_id} /app/force_renew
但收到此错误:
ACME 服务器返回错误:urn:acme:error:serverInternal :: 服务器遇到内部错误 :: ACMEv1 已弃用,您无法再从此端点获取证书。请使用 ACMEv2 端点,您可能需要更新 ACME 客户端软件才能执行此操作。访问https://community.letsencrypt.org/t/end-of-life-plan-for-acmev1/88430/27了解更多信息。
我假设该jrcs/letsencrypt-nginx-proxy-companion
图像已经更新,可以处理 ACME 客户端所需的这一更改 - 并且拉取该图像并使用新图像重新启动容器将修复自动更新问题。
如果这是正确的假设,那么我怎样才能提取最新的jrcs/letsencrypt-nginx-proxy-companion
图像并重新启动容器而不干扰连接到或wordpress
服务的卷db
?
如果这是一个错误的假设,我该如何修复证书自动更新?
version: '3.1'
services:
nginx-proxy:
container_name: nginx-proxy
image: jwilder/nginx-proxy:latest
restart: always
ports:
- 80:80
- 443:443
volumes:
- conf:/etc/nginx/conf.d
- vhost:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- dhparam:/etc/nginx/dhparam
- certs:/etc/nginx/certs:ro
- /var/run/docker.sock:/tmp/docker.sock:ro
nginx-proxy-companion:
image: jrcs/letsencrypt-nginx-proxy-companion:latest
restart: always
volumes:
- conf:/etc/nginx/conf.d
- vhost:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- dhparam:/etc/nginx/dhparam
- certs:/etc/nginx/certs:rw
- /var/run/docker.sock:/var/run/docker.sock:ro
depends_on:
- nginx-proxy
environment:
DEFAULT_EMAIL: [email protected]
NGINX_PROXY_CONTAINER: nginx-proxy
wordpress:
image: wordpress
restart: always
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: myuser
WORDPRESS_DB_PASSWORD: mypass
WORDPRESS_DB_NAME: mydb
VIRTUAL_HOST: mysite.com
LETSENCRYPT_HOST: mysite.com
volumes:
- ./wp-content:/var/www/html/wp-content
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: mydb
MYSQL_USER: myuser
MYSQL_PASSWORD: mypass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- ./mysql-data:/var/lib/mysql
command: mysqld --sql-mode=""
volumes:
conf:
vhost:
html:
dhparam:
certs: