1

我尝试了几种方法来获取 CouchDB 使用的一些 PEM 文件。我用 powershell 生成了一个证书,用密钥将其导出到 pfx,然后使用 openssl 转换为 2 个 pem 文件并将它们安装在 Couch 中。使用这种方法,它似乎适用于 IE11,但不适用于 firefox 或其他浏览器。Firefox 产生此错误:

密钥不支持请求的操作。(错误代码:sec_error_invalid_key)

我还从 ssl.com 获得了免费的 ssl 证书(他们给了我三个 CRT 文件)并尝试使用 openssl 对其进行转换,但无济于事。

我还按照 CouchDB 页面上的说明专门为此目的生成了一个自签名证书,但它不会加载该页面。(http://docs.couchdb.com/en/latest/config/http.html#config-ssl大约一半)

有人在这方面取得成功吗?如何将我的证书转换成一种可以与 Couch 和所有浏览器一起使用的格式?

更新:现在我收到此错误

PKCS #11 模块返回 CKR_DEVICE_ERROR,表示令牌或插槽出现问题。

不知道这是前进还是后退……

4

1 回答 1

0

似乎早于 1.7 或 1.6 的CouchDB版本无法为证书验证指定中间证书。由于您正在撰写有关已收到三个 .crt 文件的文章,因此可能需要其中一些文件作为中间证书。CouchDB 不知道它们可能是您的问题的原因。

显然,解决此问题的一种方法是将证书文件与中间证书文件连接起来。只是cat他们在一起就像

$ cat yours.crt theirs.crt > couchdb.crt

...并使用 CouchDB 的certfile配置选项指向couchdb.crt' 的位置。如果您喜欢先将 .crt 转换为 .pem,请使用 sth like

$ openssl openssl x509 -in yours.crt -inform der -outform pem -out yours.pem

cacertfile在足够新的版本中,您可能可以通过设置 CouchDB 的选项来使用中间证书。看看这个以获取更多信息。

于 2014-09-26T16:23:40.137 回答