#!/bin/bash

script_path=$(dirname $0)
log_owner=jxadmin
log_group=wasadmin

apps=$(find /usr/websphere/liberty/*/*/wlp/usr/servers/myproject*/apps/expanded -name '*.war' | grep -v sample | awk -F/ '{print $(NF)}')

this_host=$(hostname -f)

for app in $apps

do

    path=$(find /usr/websphere/liberty/*/*/wlp/usr/servers/myproject*/apps/expanded -name $app)
    basepath=$(dirname $path)
    bootstrap_props=${basepath}/../../bootstrap.properties
    standard_overrides=${basepath}/../../configDropins/overrides/standard_overrides.xml
    https_port=$(cat $standard_overrides | grep httpPort | awk -FhttpsPort=\" '{print $2}' | cut -d \" -f 1)
    context_root=$(cat $bootstrap_props | grep context-root | cut -d = -f 2)
    log_dir=$(cat $bootstrap_props | grep applicationLogDir |grep -v \# | cut -d = -f 2)
    log_file=${log_dir}/check_endpoints.log
    touch $log_file
    chown ${log_owner}:${log_group} $log_file
    timestamp=$(date +%d/%h/%y_%H:%M:%S)
    {
        echo -e "${timestamp}\nAPP: ${app}\nPORT: $https_port\nCONTEXT ROOT: $context_root";
        echo -e "Requesting https://${this_host}:${https_port}${context_root}/info";
        curl -q -k https://${this_host}:${https_port}${context_root}/info --cert ${script_path}/cert.pem --key ${script_path}/key.pem;
        echo -e "\n";
    } >> $log_file 2>&1
done

to extract the certs

/usr/websphere/his/java/8.0/jre/bin/ikeycmd  \
  -DADD_CMS_SERVICE_PROVIDER_ENABLED=true -cert -export -label \
  default -db plugin-key.kdb -stashed -target \
  /tmp/key.pkcs12 -target_pw password -target_type pkcs12

to convert to PEM format using openssl

openssl pkcs12 -in key.pkcs12 -clcerts -nodes > all.pem