为了验证域名所有权,Let’s Encrypt支持两种域名验证方式:
- dns 验证:手动 dns 方式, 手动在域名上添加一条 txt 解析记录, 验证域名所有权.
- http 验证:http 方式需要在你的网站根目录下放置一个文件, 来验证你的域名所有权,完成验证. 然后就可以生成证书了.
这里以使用阿里云的DNS验证方式为例。
acme.sh可以通过阿里云的API和授权的AccessKey操作域名解析记录。
因此,需要到阿里云申请AccessKey,步骤略。
AccessKeyID:LTAI********6iPV
|
|
AccessKeySecret:80wu************************95xt
|
Docker方式
# 使用守护进程的方式启动容器
|
|
docker run -itd –name acme.sh \
|
|
-e Ali_Key=LTAI********6iPV \
|
|
-e Ali_Secret=80wu************************95xt \
|
|
neilpang/acme.sh daemon
|
|
# 颁发证书
|
|
docker exec -it acme.sh –issue –dns dns_ali -d yourdomain.com -d *.yourdomain.com
|
域名和dns服务商参数根据实际情况自行修改。因免费申请的证书只有3个月的有效期,通过command: daemon参数运行后,该进程会定期自动去域名服务商更新证书,再也不用为证书过期苦恼了。
Docker Compose
version: “2.1”
|
|
services:
|
|
my-nginx:
|
|
build: ./nginx-ngx_cache_purge
|
|
container_name: “my-nginx”
|
|
ports:
|
|
– “80:80”
|
|
– “443:443”
|
|
networks:
|
|
– frontend
|
|
volumes:
|
|
– /docker/www:/var/www
|
|
– /docker/nginx/conf.d:/etc/nginx/conf.d
|
|
– /docker/nginx/ssl:/etc/nginx/ssl
|
|
– /docker/nginx/log:/var/log/nginx
|
|
restart: always
|
|
command: nginx -g ‘daemon off;’
|
|
acme.sh:
|
|
image: neilpang/acme.sh
|
|
container_name: “acme.sh”
|
|
volumes:
|
|
– /docker/nginx/ssl:/acme.sh
|
|
environment:
|
|
– Ali_Key=LTAI********6iPV
|
|
– Ali_Secret=80wu************************95xt
|
|
command: daemon
|
|
networks:
|
|
frontend:
|
|
driver: bridge
|
启动方式:
docker-compose up -d acme.sh
|
|
docker-compose exec acme.sh –issue –dns dns_ali -d yourdomain.com -d *.yourdomain.com
|
以上配置中, 是将${PWD}/acme.sh挂载至容器的/etc/acme.sh;${PWD}/acme.sh可以自行修改。
要发表评论,您必须先登录。