我通过Homebrew在mac上安装了CouchDB(yay homebrew!):
brew install couchdb
然后我完成了一系列SSL设置步骤(在shell脚本中),详见官方文档:http://docs.couchdb.org/en/1.6.1/config/http.html -
#!/bin/sh
currDir=$(pwd)
mkdir couch_certs
cd couch_certs
openssl genrsa > privkey.pem
openssl req -new -x509 -key privkey.pem -out couchdb.pem -days 1095
chmod 600 privkey.pem couchdb.pem
perl -p -i -e "s#\[daemons\]#[daemons]\nhttpsd = {couch_httpd, start_link, [https]}#" /usr/local/etc/couchdb/default.ini
perl -p -i -e "s#\[ssl\]#[ssl]\ncert_file = ${currDir}/couchdb.pem#" /usr/local/etc/couchdb/default.ini
perl -p -i -e "s#\[ssl\]#[ssl]\nkey_file = ${currDir}/privkey.pem#" /usr/local/etc/couchdb/default.ini
然后(同一个终端),我发射沙发:
couchdb
在另一个终端我测试:
curl -k https://127.0.0.1:6984/
失败了:
curl: (35) Server aborted the SSL handshake
我做错了什么?
注意我在将CouchDB作为应用程序安装时会遇到同样的错误(http://docs.couchdb.org/en/stable/install/mac.html的第2.3.1节)
编辑:我认为这是Erlang SSL问题:http://bugs.erlang.org/browse/ERL-74
答案 0 :(得分:0)
我的根本原因是openssl的旧版本(OS X 10.10.5附带的版本)。在自制的openssl安装和相同的密钥序列之后,一切正常。