From 670763d3213dd5926a971286599ed73bfccb5a6f Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Thu, 6 Dec 2012 19:19:53 -0800 Subject: [PATCH] Need working ways to specify the key, cert, and chain. --- src/cpp/ripple/Config.cpp | 4 ++++ src/cpp/ripple/Config.h | 1 + src/cpp/ripple/WSHandler.h | 4 +++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/cpp/ripple/Config.cpp b/src/cpp/ripple/Config.cpp index 8ada3d6070..cede9d2486 100644 --- a/src/cpp/ripple/Config.cpp +++ b/src/cpp/ripple/Config.cpp @@ -41,6 +41,8 @@ #define SECTION_WEBSOCKET_PORT "websocket_port" #define SECTION_WEBSOCKET_SECURE "websocket_secure" #define SECTION_WEBSOCKET_SSL_CERT "websocket_ssl_cert" +#define SECTION_WEBSOCKET_SSL_CHAIN "websocket_ssl_chain" +#define SECTION_WEBSOCKET_SSL_KEY "websocket_ssl_key" #define SECTION_VALIDATORS "validators" #define SECTION_VALIDATORS_SITE "validators_site" @@ -263,6 +265,8 @@ void Config::load() WEBSOCKET_SECURE = boost::lexical_cast(strTemp); sectionSingleB(secConfig, SECTION_WEBSOCKET_SSL_CERT, WEBSOCKET_SSL_CERT); + sectionSingleB(secConfig, SECTION_WEBSOCKET_SSL_CHAIN, WEBSOCKET_SSL_CHAIN); + sectionSingleB(secConfig, SECTION_WEBSOCKET_SSL_KEY, WEBSOCKET_SSL_KEY); if (sectionSingleB(secConfig, SECTION_VALIDATION_SEED, strTemp)) diff --git a/src/cpp/ripple/Config.h b/src/cpp/ripple/Config.h index 50862a0c34..bd3c9c56e5 100644 --- a/src/cpp/ripple/Config.h +++ b/src/cpp/ripple/Config.h @@ -94,6 +94,7 @@ public: bool WEBSOCKET_SECURE; std::string WEBSOCKET_SSL_CERT; std::string WEBSOCKET_SSL_CHAIN; + std::string WEBSOCKET_SSL_KEY; // RPC parameters std::string RPC_IP; diff --git a/src/cpp/ripple/WSHandler.h b/src/cpp/ripple/WSHandler.h index 3a90c6d456..9c13fc4f0e 100644 --- a/src/cpp/ripple/WSHandler.h +++ b/src/cpp/ripple/WSHandler.h @@ -138,7 +138,9 @@ public: boost::asio::ssl::context::single_dh_use); // context->set_password_callback(boost::bind(&type::get_password, this)); if (!theConfig.WEBSOCKET_SSL_CERT.empty()) - context->use_private_key_file(theConfig.WEBSOCKET_SSL_CERT, boost::asio::ssl::context::pem); + context->use_certificate_file(theConfig.WEBSOCKET_SSL_CERT, boost::asio::ssl::context::pem); + if (!theConfig.WEBSOCKET_SSL_KEY.empty()) + context->use_private_key_file(theConfig.WEBSOCKET_SSL_KEY, boost::asio::ssl::context::pem); if (!theConfig.WEBSOCKET_SSL_CHAIN.empty()) context->use_certificate_chain_file(theConfig.WEBSOCKET_SSL_CHAIN); //context->use_tmp_dh_file("../../src/ssl/dh512.pem");