From 00e58b0fe00155109d75cf5395a13e57697d2feb Mon Sep 17 00:00:00 2001 From: SuperBFG7 Date: Sun, 27 Sep 2015 14:33:37 +0200 Subject: [PATCH 1/2] compile mongoose with SSL support --- CMakeLists.txt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7bd4b70..331ee49 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,7 @@ endif() option(WITH_MPD_HOST_CHANGE "Let users of the web frontend change the MPD Host" ON) option(WITH_DYNAMIC_ASSETS "Serve assets dynamically (e.g for development/packaging)" OFF) option(WITH_IPV6 "enable IPv6 support" ON) +option(WITH_SSL "enable SSL support" ON) find_package(LibMPDClient REQUIRED) find_package(Threads REQUIRED) @@ -28,6 +29,12 @@ set(CMAKE_C_FLAGS_DEBUG "-ggdb -pedantic") if(WITH_IPV6) set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS NS_ENABLE_IPV6) endif() +if(WITH_SSL) + find_package(OpenSSL REQUIRED) + include_directories(${OPENSSL_INCLUDE_DIR}) +# list(APPEND LIB_LIST ${OPENSSL_LIBRARIES}) + set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS NS_ENABLE_SSL) +endif() file(GLOB RESOURCES RELATIVE ${PROJECT_SOURCE_DIR} @@ -63,7 +70,7 @@ if(NOT WITH_DYNAMIC_ASSETS) endif() add_executable(ympd ${SOURCES}) -target_link_libraries(ympd ${LIBMPDCLIENT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT}) +target_link_libraries(ympd ${LIBMPDCLIENT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${OPENSSL_LIBRARIES}) install(TARGETS ympd DESTINATION bin) install(FILES ympd.1 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1) From 64cdd920e7a7ce7721e32576e199f01c4623cf52 Mon Sep 17 00:00:00 2001 From: Daniel Schregenberger Date: Tue, 6 Oct 2015 18:53:14 +0200 Subject: [PATCH 2/2] added documentation for SSL usage --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 9561a80..08ef76d 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,19 @@ Usage: ./ympd [OPTION]... --help this help ``` +SSL Support +----------- +To run ympd with SSL support: + +- create a certificate (key and cert in the same file), example: +``` +# openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 1000 -nodes +# cat key.pem cert.pem > ssl.pem +``` +- tell ympd to use a webport using SSL and where to find the certificate: +``` +# ./ympd -w "ssl://8081:/path/to/ssl.pem" +``` Copyright ---------