是否可以通过 CSR 指定 Active Directory PKI 密钥大小

是否可以通过 CSR 指定 Active Directory PKI 密钥大小

当我从 Letsencrypt 请求证书时,输入钥匙全链证书nginx配置-一切正常。

对于 Active Directory,同样不起作用。

-I 生成密钥(尝试 rsa 2048 或 4096 位、ec 与默认曲线和设置)

-然后生成 CSR

-上传 CSR 到本地 PKI 站点

-获取 PEM 证书(certnew.cer - 证书,certnew.p7b - fullchain)

-从 PKCS #7 转换为 PEM

openssl pkcs7 -print_certs -in certnew.p7b  -out 3cer

内容看起来像是有效的全链。但 nginx 没有启动

SSL_CTX_set0_chain(“/etc/nginx/ssl.pem”)失败(SSL:错误:1415418D:SSL 例程:ssl_cert_set0_chain:ca 密钥太小)

一些有趣的事实 - 如果我把单一证书证书更新作为nginx 服务器.ssl_证书一切似乎都正常(尽管它不是全链的,而且据我所知这不应该起作用)

我不是 AD 管理员。我只能更改 CSR 参数或在 AD PKI 文本框中添加“属性”(但我没有找到任何文档说明这是做什么的)。

我可以强制 AD 使用更大的密钥吗?或者这个 nginx 错误消息具有误导性?

答案1

密钥大小是在生成认证请求时定义的,而不是由 CA 在签署请求时定义的。因此,您不能强迫 AD 认证机构 (CA) 使用更大的密钥,因为密钥在到达 CA 时已经生成。

也就是说,如果您使用 Windows 生成认证请求,则请求的最小(读取默认值)大小在证书模板中定义。

正如您所说,如果仅使用服务器证书(没有 CA 链)就不会发出错误,那么这表明服务器证书没有问题。

检查 CA 证书本身的大小。我敢打赌,这个证书太小了,现代服务器/服务无法接受。

相关内容