#!/bin/bash # Copyright: 2023 Virtuozzo International GmbH # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. inherit default os envinfo; [ -n "$ssl_module_inherit" ] && inherit "$ssl_module_inherit"; include output cartridge-common; DESCRIPTION="Enables SSL for application stack"; VERSION="1"; DEFAULT_ACTION="Usage"; SSL_CONFIG_DIR="/var/lib/jelastic/SSL"; DEFAULT_DOMAIN="jelastic"; function doUsage() { showUsageMessage; } [ "x${COMPUTE_TYPE}" == "xcartridge" ] && { [ -f "${CARTRIDGE_HOME}/jelastic/jelastic.conf" ] && source "${CARTRIDGE_HOME}/jelastic/jelastic.conf"; }; function doInstall(){ if [ "x${COMPUTE_TYPE}" == "xcartridge" ] then if [ -f "${CARTRIDGE_HOME}/jelastic/scripts/ssl_manager.sh" ] then source "${CARTRIDGE_HOME}/jelastic/scripts/ssl_manager.sh" && $( _enableSSL ) && { writeJSONResponseOut "result=>0" "message=>SSL installed successfully"; return 0; } || { writeJSONResponseErr "result=>4022" "message=>SSL installed with Error!"; return 1; }; else { writeJSONResponseErr "result=>4116" "message=>SSL installation is not implemented"; return 0; } fi fi $(enableSSL) ; sslresult=$?; case $sslresult in 0 ) writeJSONResponseOut "result=>0" "message=>SSL installed successfully" ;; 209 ) writeJSONResponseErr "result=>4009" "message=>Could not detect valid domain for uploaded certificate" ;; 210 ) writeJSONResponseErr "result=>4010" "message=>No certificates installed" ;; 211 ) writeJSONResponseErr "result=>4011" "message=>Uploaded file isn't a certificate!" ;; 212 ) writeJSONResponseErr "result=>4012" "message=>Could not receive certificate!" ;; 213 ) writeJSONResponseErr "result=>4013" "message=>Could not receive CA certificate" ;; 214 ) writeJSONResponseErr "result=>4014" "message=>Certificate does not match key!" ;; 215 ) writeJSONResponseErr "result=>4015" "message=>Uploaded file isn't a private key!" ;; 216 ) writeJSONResponseErr "result=>4016" "message=>Could not receive private key!" ;; 217 ) writeJSONResponseErr "result=>4180" "message=>Uploaded key is encrypted!" ;; 147 ) writeJSONResponseErr "result=>4147" "message=>Certificates not uploaded"; ;; 182 ) writeJSONResponseErr "result=>4182" "Service restart failed"; ;; 183 ) writeJSONResponseErr "result=>4183" "Service start failed"; ;; 184 ) writeJSONResponseErr "result=>4184" "Service stop failed"; ;; 185 ) writeJSONResponseErr "result=>4147" "message=>Service reload failed"; ;; 220 ) writeJSONResponseErr "result=>4020" "message=>Cannot enable SSL module!" ;; 4 ) writeJSONResponseErr "result=>4004" "message=>Cannot save user files!" ;; 143 ) writeJSONResponseErr "result=>4143" "message=>Cannot save configuration files!" ;; 39 ) writeJSONResponseErr "result=>4039" "message=>SSL config not found!" ;; * ) writeJSONResponseErr "result=>4022" "message=>SSL installed with Error!" ;; esac return $sslresult } function doRemove(){ if [ "x${COMPUTE_TYPE}" == "xcartridge" ] then if [ -f "${CARTRIDGE_HOME}/jelastic/scripts/ssl_manager.sh" ] then source "${CARTRIDGE_HOME}/jelastic/scripts/ssl_manager.sh" && $( _disableSSL ) && { writeJSONResponseOut "result=>0" "message=>SSL removed successfully"; return 0; } || { writeJSONResponseErr "result=>4023" "message=>SSL removed with Error!"; return 1; }; else { writeJSONResponseErr "result=>4116" "message=>SSL remove is not implemented!"; return 1; } fi fi $(disableSSL) ; sslresult=$?; case $sslresult in 0) writeJSONResponseOut "result=>0" "message=>SSL removed successfully" ;; 182 ) writeJSONResponseErr "result=>4182" "Service restart failed" ;; 183 ) writeJSONResponseErr "result=>4183" "Service start failed" ;; 184 ) writeJSONResponseErr "result=>4184" "Service stop failed" ;; 185 ) writeJSONResponseErr "result=>4147" "message=>Service reload failed" ;; 221 ) writeJSONResponseErr "result=>4021" "message=>Cannot disable SSL module!" ;; 4 ) writeJSONResponseErr "result=>4004" "message=>Cannot save user files!" ;; 143 ) writeJSONResponseErr "result=>4143" "message=>Cannot save configuration files!" ;; 39 ) writeJSONResponseErr "result=>4039" "message=>SSL config not found!" ;; *) writeJSONResponseErr "result=>4023" "message=>SSL removed with Error!" ;; esac return $sslresult; } function doCheckDomain(){ doAction keystore checkDomain; } function describeCheckDomain() { echo "Check domain name for uploaded certificate"; } function describeInstall() { echo "Install ssl keys"; } function describeRemove() { echo "Remove ssl keys"; }