首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Nginx 配置证书时报错:SSL_CTX_use_PrivateKey failed

Nginx 配置证书时报错:SSL_CTX_use_PrivateKey failed

原创
作者头像
沈唁
发布2024-12-16 14:14:26
发布2024-12-16 14:14:26
1.7K0
举报
文章被收录于专栏:沈唁志沈唁志

在配置 Nginx SSL 证书时,如果遇到以下错误:

代码语言:bash
复制
nginx: [emerg] SSL_CTX_use_PrivateKey failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)

这应该是 SSL 证书和私钥之间的公私钥对不匹配。这篇文章就展开地分析这个问题的原因和解决方案。

错误分析

该错误表示 Nginx 在加载私钥时,检测到证书和私钥之间不匹配。常见原因如下:

  1. 使用了错误的证书文件,如其他域名的证书。
  2. 在配置时不小心选择了错误的私钥文件。
  3. 证书或私钥文件被损坏。
  4. CSR 文件和私钥不匹配。

解决方案

  1. 检查证书和私钥是否匹配

通过 OpenSSL 命令检查证书和私钥的 MD5 值是否匹配:

查看私钥的 MD5 值:

代码语言:bash
复制
openssl rsa -noout -modulus -in your_private.key | openssl md5

查看证书的 MD5 值:

代码语言:bash
复制
openssl x509 -noout -modulus -in your_certificate.crt | openssl md5

CSR 的 MD5 值(如果有):

代码语言:bash
复制
openssl req -noout -modulus -in your_request.csr | openssl md5

如果 MD5 值不匹配,请确保使用了正确的私钥和证书。

  1. 检查私钥是否有效

使用下列命令检查私钥是否有效:

代码语言:bash
复制
openssl rsa -check -in your_private.key

如果私钥损坏,需重新生成私钥和证书。

  1. 检查证书链是否完整

为了确保证书链完整,可将证书和中间证书合并:

代码语言:bash
复制
cat your_certificate.crt intermediate_certificate.crt > full_chain.crt

然后在 Nginx 配置文件中指向此合并证书:

代码语言:nginx
复制
ssl_certificate /path/to/full_chain.crt;
ssl_certificate_key /path/to/private.key;
  1. 重新生成 CSR 和私钥

如果不能确保证书和私钥是否一致,可考虑重新生成 CSR 和私钥:

生成新的私钥:

代码语言:bash
复制
openssl genrsa -out new_private.key 2048

生成 CSR:

代码语言:bash
复制
openssl req -new -key new_private.key -out new_request.csr

然后将 CSR 提交给 CA (证书授权机构),以获取新证书。

  1. 检查 Nginx 配置

确保配置文件中指向正确的证书和私钥路径,如在 Nginx 中的配置示例:

代码语言:nginx
复制
ssl_certificate /etc/nginx/ssl/full_chain.crt;
ssl_certificate_key /etc/nginx/ssl/private.key;

配置保存后,重启 Nginx:

代码语言:bash
复制
sudo nginx -t
sudo systemctl reload nginx

这个错误通常是由于证书和私钥不匹配或配置错误导致。通过检查证书和私钥的 MD5 值、检查配置文件和确保证书链完整,可以解决这个问题。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 错误分析
  • 解决方案
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档