diff --git a/SuperBuild/CMake/External_curl.cmake b/SuperBuild/CMake/External_curl.cmake
index b9cbc0bd072175a953699f9e7a22ec49ebb71a21..c6fba774cea0c5e70e3435cb7940479c88263a88 100644
--- a/SuperBuild/CMake/External_curl.cmake
+++ b/SuperBuild/CMake/External_curl.cmake
@@ -15,6 +15,9 @@ else()
   
   # declare dependencies
   set(${proj}_DEPENDENCIES ZLIB)
+  if(NOT USE_SYSTEM_OPENSSL)
+    list(APPEND ${proj}_DEPENDENCIES OPENSSL)
+  endif()
   INCLUDE_SUPERBUILD_DEPENDENCIES(${${proj}_DEPENDENCIES})
   # set proj back to its original value
   set(proj CURL)
diff --git a/SuperBuild/CMake/External_openssl.cmake b/SuperBuild/CMake/External_openssl.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..a4c908a4e32b2ab472da64f0162eb3451d4eff2d
--- /dev/null
+++ b/SuperBuild/CMake/External_openssl.cmake
@@ -0,0 +1,58 @@
+set(proj OPENSSL)
+
+if(NOT __EXTERNAL_${proj}__)
+set(__EXTERNAL_${proj}__ 1)
+
+message(STATUS "Setup OpenSSL ...")
+
+if(USE_SYSTEM_OPENSSL)
+  find_package ( OPENSSL )
+  add_custom_target(${proj})
+  message(STATUS "  Using OpenSSL system version")
+else()
+  SETUP_SUPERBUILD(PROJECT ${proj})
+  message(STATUS "  Using OpenSSL SuperBuild version")
+  
+  # declare dependencies
+  set(${proj}_DEPENDENCIES ZLIB)
+  INCLUDE_SUPERBUILD_DEPENDENCIES(${${proj}_DEPENDENCIES})
+  # set proj back to its original value
+  set(proj OPENSSL)
+
+  set(OPENSSL_BUILD_ARCH "linux-x32")
+  if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+    set(OPENSSL_BUILD_ARCH "linux-x86_64")
+  endif()
+  
+  if(MSVC)
+    message(FATAL_ERROR "No build rules added yet.")  
+  else(UNIX)
+    ExternalProject_Add(${proj}
+      PREFIX ${proj}
+      DEPENDS ${${proj}_DEPENDENCIES}
+      URL "http://openssl.org/source/openssl-1.0.2c.tar.gz"
+      URL_MD5 8c8d81a9ae7005276e486702edbcd4b6
+      BINARY_DIR ${OPENSSL_SB_BUILD_DIR}
+      INSTALL_DIR ${SB_INSTALL_PREFIX}
+      DOWNLOAD_DIR ${DOWNLOAD_LOCATION}
+      PATCH_COMMAND  ${CMAKE_COMMAND} -E copy_directory ${OPENSSL_SB_SRC} ${OPENSSL_SB_BUILD_DIR}
+      CONFIGURE_COMMAND ${CMAKE_COMMAND} -E chdir ${OPENSSL_SB_BUILD_DIR} ./Configure ${OPENSSL_BUILD_ARCH}
+      --prefix=${SB_INSTALL_PREFIX} shared zlib zlib-dynamic -I${SB_INSTALL_PREFIX}/include -L${SB_INSTALL_PREFIX}/lib
+      BUILD_COMMAND $(MAKE)
+      INSTALL_COMMAND $(MAKE) install
+      )
+  endif()
+  
+  set(_SB_${proj}_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include)
+  if(WIN32)
+    message(FATAL_ERROR "No build rules added yet.")  
+  elseif(UNIX)
+    set(_SB_${proj}_LIBRARY ${SB_INSTALL_PREFIX}/lib/libssl${CMAKE_SHARED_LIBRARY_SUFFIX})
+  endif()
+
+endif()
+endif()
+
+
+
+
diff --git a/SuperBuild/CMakeLists.txt b/SuperBuild/CMakeLists.txt
index f6b42039e01ed3079fdba2e82f1e618dab78914a..d7d7ffd77293089cf064b2b6031fc42e3eb670c0 100644
--- a/SuperBuild/CMakeLists.txt
+++ b/SuperBuild/CMakeLists.txt
@@ -102,6 +102,11 @@ SETUP_SYSTEM_LIBRARY(PROJECT OPENJPEG DEFAULT OFF)
 SETUP_SYSTEM_LIBRARY(PROJECT BOOST DEFAULT ON)
 SETUP_SYSTEM_LIBRARY(PROJECT LIBKML DEFAULT OFF)
 SETUP_SYSTEM_LIBRARY(PROJECT CURL DEFAULT ON)
+if(WIN32)
+  SETUP_SYSTEM_LIBRARY(PROJECT OPENSSL DEFAULT OFF)
+else()
+  SETUP_SYSTEM_LIBRARY(PROJECT OPENSSL DEFAULT ON)
+endif()
 SETUP_SYSTEM_LIBRARY(PROJECT GDAL DEFAULT OFF)
 SETUP_SYSTEM_LIBRARY(PROJECT FFTW DEFAULT OFF)
 SETUP_SYSTEM_LIBRARY(PROJECT ITK DEFAULT OFF)