CouchDB SSL CRT到PEM文件

时间:2013-10-29 23:03:16

标签: powershell ssl https openssl couchdb

我已经尝试了几种方法来获取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,表示令牌或插槽出现问题。

不确定这是前进还是后退......

1 个答案:

答案 0 :(得分:0)

seems类似于1.7或1.6之前的CouchDB版本无法为证书验证指定中间证书。由于您正在撰写有关收到三个.crt文件的文章,因此可能需要这些文件作为中间证书。 CouchDB不了解它们可能是导致问题的原因。

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

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

...并使用CouchDB的certfile配置选项指向couchdb.crt的位置。 如果您希望首先将.crt转换为.pem,请使用类似

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

在一个足够新的版本中,您可以通过设置CouchDB的cacertfile选项来使用中间证书。有关详细信息,请查看this