I've been having problems getting riak to function via https and have not been able to find anything online that seems to help so far. I am using a self-signed certificate (which is one I generated specifically for this testing, and thus could post as it will not be used for anything else) and have it stored as separate .crt and .key files. I've used open SSL to verify the certificate and it appears to be all good. Here is what the relevant bits of my app.config look like (I can post the rest as needed, but I'm trying to be consise):
{http, [{"0.0.0.0", 8091}]}, {https, [{"0.0.0.0", 8092}]}, {ssl, [ {certfile, "/etc/riak/ssl.crt"}, {keyfile, "/etc/riak/ssl.key"} ]}, Starting riak does not generate any errors, and 'riak-admin test' works: [root@riak01 riak]# riak-admin test Attempting to restart script through sudo -u riak Successfully completed 1 read/write cycle to 'r...@riak01.mediatemple.net' Manuallly querying riak via http also works fine: [root@riak01 riak]# curl -k -vvv http://127.0.0.1:8091/riak/__riak_client_test__ * About to connect() to 127.0.0.1 port 8091 (#0) * Trying 127.0.0.1... connected * Connected to 127.0.0.1 (127.0.0.1) port 8091 (#0) > GET /riak/__riak_client_test__ HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/ 3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2 > Host: 127.0.0.1:8091 > Accept: */* > < HTTP/1.1 200 OK < Vary: Accept-Encoding < Server: MochiWeb/1.1 WebMachine/1.9.0 (someone had painted it blue) < Date: Fri, 13 Jul 2012 18:03:13 GMT < Content-Type: application/json < Content-Length: 410 < * Connection #0 to host 127.0.0.1 left intact * Closing connection #0 {"props":{"name":"__riak_client_test__","allow_mult":false,"basic_quorum":false,"big_vclock":50,"chash_keyfun":{"mod":"riak_core_util","fun":"chash_std_keyfun"},"dw":1,"last_write_wins":false,"linkfun":{"mod":"riak_kv_wm_link_walker","fun":"mapreduce_linkfun"},"n_val":1,"notfound_ok":true,"old_vclock":86400,"postcommit":[],"pr":0,"precommit":[],"pw":0,"r":1,"rw":1,"small_vclock":50,"w":1,"young_vclock":20}} But the minute I try to connect via https I have problems: [root@riak01 riak]# curl -k -vvv https://127.0.0.1:8092/riak/__riak_client_test__ * About to connect() to 127.0.0.1 port 8092 (#0) * Trying 127.0.0.1... connected * Connected to 127.0.0.1 (127.0.0.1) port 8092 (#0) * Initializing NSS with certpath: sql:/etc/pki/nssdb * warning: ignoring value of ssl.verifyhost * NSS error -5938 * Closing connection #0 * SSL connect error curl: (35) SSL connect error And I see the following in the logs: console.log: 2012-07-13 11:05:52.023 [error] <0.5313.0> CRASH REPORT Process <0.5313.0> with 0 neighbours crashed with reason: {ekeyfile,[{gen_fsm,init_it,6},{proc_lib,init_p_do_apply,3}]} 2012-07-13 11:05:52.026 [error] <0.134.0> Supervisor ssl_connection_sup had child undefined started with {ssl_connection,start_link,undefined} at <0.5313.0> exit with reason ekeyfile in context child_terminated 2012-07-13 11:05:52.031 [error] <0.139.0> application: mochiweb, "Accept failed error", "{error,ekeyfile}" 2012-07-13 11:05:52.033 [error] <0.139.0> CRASH REPORT Process <0.139.0> with 0 neighbours crashed with reason: {error,accept_failed} 2012-07-13 11:05:52.035 [error] <0.135.0> {mochiweb_socket_server,310,{acceptor_error,{error,accept_failed}}} crash.log: 2012-07-13 11:05:52 =ERROR REPORT==== [83,83,76,58,32,"1112",58,32,"error",58,"[]",32,"/etc/riak/ssl.key","\n",32,32,[91,[[123,["ssl_connection",44,"init_private_key",44,"5"],125],44,10," ",[123,["ssl_connection",44,"ssl_init",44,"2"],125],44,10," ",[123,["ssl_connection",44,"init",44,"1"],125],44,10," ",[123,["gen_fsm",44,"init_it",44,"6"],125],44,10," ",[123,["proc_lib",44,"init_p_do_apply",44,"3"],125]],93],"\n"]2012-07-13 11:05:52 =CRASH REPORT==== crasher: initial call: ssl_connection:init/1 pid: <0.5313.0> registered_name: [] exception exit: ekeyfile in function gen_fsm:init_it/6 in call from proc_lib:init_p_do_apply/3 ancestors: [ssl_connection_sup,ssl_sup,<0.130.0>] messages: [] links: [<0.134.0>] dictionary: [] trap_exit: false status: running heap_size: 1597 stack_size: 24 reductions: 1185 neighbours: 2012-07-13 11:05:52 =SUPERVISOR REPORT==== Supervisor: {local,ssl_connection_sup} Context: child_terminated Reason: ekeyfile Offender: [{pid,<0.5313.0>},{name,undefined},{mfargs,{ssl_connection,start_link,undefined}},{restart_type,temporary},{shutdown,4000},{child_type,worker}] 2012-07-13 11:05:52 =ERROR REPORT==== [{application,mochiweb},"Accept failed error","{error,ekeyfile}"]2012-07-13 11:05:52 =CRASH REPORT==== crasher: initial call: mochiweb_acceptor:init/3 pid: <0.139.0> registered_name: [] exception exit: {error,accept_failed} in function mochiweb_acceptor:init/3 in call from proc_lib:init_p_do_apply/3 ancestors: ['https_0.0.0.0:8092',riak_core_sup,<0.88.0>] messages: [] links: [<0.135.0>,#Port<0.5661>] dictionary: [] trap_exit: false status: running heap_size: 233 stack_size: 24 reductions: 818 neighbours: 2012-07-13 11:05:52 =ERROR REPORT==== {mochiweb_socket_server,310,{acceptor_error,{error,accept_failed}}} erlang.log.1 and error.log (which are identical): 11:05:52.018 [error] SSL: 1112: error:[] /etc/riak/ssl.key [{ssl_connection,init_private_key,5}, {ssl_connection,ssl_init,2}, {ssl_connection,init,1}, {gen_fsm,init_it,6}, {proc_lib,init_p_do_apply,3}] 11:05:52.023 [error] CRASH REPORT Process <0.5313.0> with 0 neighbours crashed with reason: {ekeyfile,[{gen_fsm,init_it,6},{proc_lib,init_p_do_apply,3}]} 11:05:52.026 [error] Supervisor ssl_connection_sup had child undefined started with {ssl_connection,start_link,undefined} at <0.5313.0> exit with reason ekeyfile in context child_terminated 11:05:52.031 [error] application: mochiweb, "Accept failed error", "{error,ekeyfile}" 11:05:52.033 [error] CRASH REPORT Process <0.139.0> with 0 neighbours crashed with reason: {error,accept_failed} 11:05:52.035 [error] {mochiweb_socket_server,310,{acceptor_error,{error,accept_failed}}} Everything I am finding says this means my key file is bad. However, as previously mentioned, I've verified this with openssl: [root@riak01 riak]# openssl verify /etc/riak/ssl.crt /etc/riak/ssl.crt: C = US, ST = California, L = Culver City, O = Default Company Ltd, CN = example.com, emailAddress = ad...@example.com error 18 at 0 depth lookup:self signed certificate OK [root@riak01 riak]# ( openssl x509 -noout -modulus -in /etc/riak/ssl.crt | openssl md5; openssl rsa -noout -modulus -in /etc/riak/ssl.key | openssl md5 ) | uniq (stdin)= b3d4187d8472f2d0b73cf5597d5d65b8 I'm just really not sure what else to look at. Everything seems to be fine except for that fact it's not working. Does anybody have SSL working with self-signed certificate using the basho provided binary packages on CentOS 6.3? I'm beginning to thing that they might be the problem and I just don't know where to go from here. Any suggestions will be appreciated.
_______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com