Drone 通过在 Drone Server 容器中安装证书来支持本地 SSL 配置。如果你的 Drone Server 是公开的,你应该考虑使用 Let’s Encrypt。
-
将你的证书和密钥装入 Drone Server 容器:
1 2 3
$ docker run \ -v /etc/certs/drone.company.com/server.crt:/etc/certs/drone.company.com/server.crt \ -v /etc/certs/drone.company.com/server.key:/etc/certs/drone.company.com/server.key
-
配置你的证书和密钥的路径:
1 2 3
$ docker run \ -e DRONE_TLS_CERT=/etc/certs/drone.company.com/server.crt \ -e DRONE_TLS_KEY=/etc/certs/drone.company.com/server.key
-
暴露标准的 http 和 https 端口:
1 2 3
$ docker run \ -p 80:80 \ -p 443:443
Let’s Encrypt
Drone 支持使用 Let’s Encrypt 自动配置和更新 SSL。你可以通过以下标志启用 Let’s encrypt。
-
用以下参数启用 Lets Encrypt。
1
DRONE_TLS_AUTOCERT=true
-
确保配置了所需的主机名。
1 2
DRONE_SERVER_HOST=domain.com DRONE_SERVER_PROTO=https
-
暴露标准的 http 和 https 端口:
1 2 3
docker run \ -p 80:80 \ -p 443:443
-
将证书缓存加载到主机上:
1 2
docker run \ -v /var/lib/drone:/data
证书缓存
Drone 将生成的证书缓存在磁盘的 /data/golang-autocert
中。这可以防止系统在重启时重新申请证书。最好的做法是把 /data
目录绑定到主机上。
证书升级
Drone 使用官方 Go acme 库来处理证书升级。应该不需要额外的配置或管理。