RavenDb - 安全模式下的 CertificateNameMismatchException

问题描述

我设置了一个 RavenDB 服务器并在安全模式下运行。服务器证书是自签名的,是在初始安装完成后添加的。 settings.json 文件看起来像 this

我可以在 127.0.0.1:8080 上的浏览​​器(Chrome)中访问服务器管理工​​作室。 之后,我颁发了一个客户端证书并在 Windows 中注册了它。 然后在一个简单的 .NET Framework 控制台应用程序中,我尝试将一些数据存储到数据库中。

我使用这个 sample code 来创建 DocumentStorage 对象。存储正在初始化,没有任何异常,但是当我调用会话的 SaveChanges 方法时,我得到 CertificateNameMismatchException:

服务器 URL 的主机名必须与服务器证书的 CN 或 SAN 属性之一匹配:CN=ravenDb.test.com,DNS Name=ravenDb.test.com

我做错了什么?
是服务器和/或客户端证书问题吗?还是服务器本身配置不正确?

解决方法

使用证书时,您必须使用域名访问服务器,而不是直接使用 IP 地址。

将配置属性 'PublicServerUrl' 设置为 https://ravenDb.test.com:8080 并将 'PublicServerUrl.Tcp' 设置为 tcp://ravenDb.test.com:38888 并且不要忘记设置 DNS 记录(或编辑本地主机文件) 让 ravenDb.test.com 指向 127.0.0.1。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...