部署私有Docker Registry时Nginx报ssl_certificate_key未定义错误如何解决
错误原因
- 配置指令使用错误:Nginx SSL配置段中连续两次使用了
ssl_certificate指令,私钥文件需要用专属的ssl_certificate_key指令声明,你将私钥key.pem也用证书指令配置,导致Nginx认为你新增了一个证书但未匹配对应私钥,直接触发该报错。 - 证书路径配置错误:配置中填写的是宿主机的本地路径
/home/user/registry/nginx/ssl/,但从docker-compose挂载规则来看,宿主机的./nginx/ssl/目录被映射到Nginx容器内的/etc/nginx/ssl/路径,容器内部不存在宿主机的/home目录结构,即使修正指令也会找不到证书文件。
修复步骤
- 打开registry.conf配置文件,找到ssl配置段,替换为正确的指令和容器内路径:
# 替换原有的两行错误ssl配置 ssl_certificate /etc/nginx/ssl/csr.pem; ssl_certificate_key /etc/nginx/ssl/key.pem;
注意:如果你的csr.pem是证书签名请求文件而非最终签发的证书,需要替换为CA签发后的正式证书文件,否则后续SSL握手会失败
2. 保存配置后,重启Nginx容器生效:docker-compose up -d --force-recreate nginx
内容的提问来源于stack exchange,提问作者Alison
相关产品推荐
相关产品推荐

