【问题标题】:CouchDB SSL CRT to PEM filesCouchDB SSL CRT 到 PEM 文件
【发布时间】:2013-10-29 23:03:16
【问题描述】:

我尝试了几种方法来获取一些 PEM 文件以供 CouchDB 使用。我用 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,表示令牌或插槽出现问题。

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

【问题讨论】:

  • 是否可以在 CouchDB 前面放置反向代理?然后它可以处理 HTTPS,而您不必在 CouchDB 中处理它:wiki.apache.org/couchdb/Nginx_As_a_Reverse_Proxy
  • 我最终可能会编写一个 nodejs 中间件,但如果这能工作那就太好了。正如 couch 在他们的页面上所说的那样,它应该是easy。 :-/
  • 我也有同样的问题。在 Ubuntu 13.10 上使用 CouchDB 1.4。使用不安全标志 (-k) 时,Curl 可以正常工作。

标签: powershell ssl https openssl couchdb


【解决方案1】:

seems 像早于 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

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

【讨论】:

    猜你喜欢
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 2020-10-30
    • 2020-07-15
    • 2010-11-02
    相关资源
    最近更新 更多