Skip to main content
Glama
check_for_tls4.58 kB
#!/bin/bash # Setting up TLS certificate if provided DEFAULT_CERT_PATH="${TLS_CERT_DIRECTORY}/gateway_cert.pem" CERT_PATH="${TLS_CERT_PATH}" PROXY_CONF_FILE="${LUNAR_HAPROXY_CONFIG}" PROXY_HTTPS_ENABLED='bind *:443 ssl crt "${TLS_CERT_PATH}" ssl-min-ver TLSv1.2' mTLS_CONFIG=$LUNAR_PROXY_POLICIES_CONFIG # Check if flows feature flag is enabled, if it is then use the new gateway_config.yaml file if [ "$LUNAR_STREAMS_ENABLED" = "true" ]; then mTLS_CONFIG="$LUNAR_PROXY_CONFIG_DIR/gateway_config.yaml" fi # Check if CERT_PATH is empty if [ -z "$CERT_PATH" ]; then CERT_PATH="$DEFAULT_CERT_PATH" fi if [ -f "$CERT_PATH" ]; then echo "*** TLS certificate found ***" echo "Certificate found at $CERT_PATH" echo "Using certificate for HTTPS configuration in LunarProxy" echo "*** TLS certificate found ***" awk -v replacement="$PROXY_HTTPS_ENABLED" '{gsub(/# _ # Lunar_HTTPS_Binder # _ #/, replacement); print}' "$PROXY_CONF_FILE" > modified_haproxy_cfg && mv modified_haproxy_cfg "$PROXY_CONF_FILE" else if [ "$CERT_PATH" != "$DEFAULT_CERT_PATH" ]; then # If the certificate path is not the default path and the certificate is not found, then log a warning echo "*** TLS certificate not found ***" echo "No certificate found at $CERT_PATH" echo "Using default HTTP configuration in Lunar Proxy" echo "*** TLS certificate not found ***" echo "" fi fi # Setting up mTLS certificate if provided MAP_FILE="/etc/haproxy/maps/mtls.map" > "$MAP_FILE" if [ -f "$mTLS_CONFIG" ]; then yq e '.mTLS[] | .domain + " " + (.cert // "")' "$mTLS_CONFIG" >> "$MAP_FILE" else echo "Configuration file not found: $mTLS_CONFIG" fi if [[ -s "$MAP_FILE" ]]; then echo "Extracting mTLS configuration from configuration file: $mTLS_CONFIG" echo "mTLS configuration:" mtls_configured=false missing_certs=() if [ -f "$mTLS_CONFIG" ]; then while read -r domain cert ca; do if [ ! -f "$cert" ]; then missing_certs+=("Certificate '$cert' for domain: '$domain' not found.") continue fi modified_crt="crt $cert" mtls_configured=true section="backend $domain mode http server clear $domain:443 ssl verify required $modified_crt verify none sni str($domain) " # Check if the domain is already in the configuration file if grep -q "backend $domain" "$LUNAR_HAPROXY_CONFIG"; then continue fi echo "Adding mTLS configuration for $domain with cert $cert" awk -v replacement="$section" ' { # If we find the placeholder, insert the replacement data first if ($0 ~ /# _ # Lunar_mTLS_Backend_Binder # _ #/) { print replacement } print }' "$LUNAR_HAPROXY_CONFIG" > modified_haproxy_cfg && mv modified_haproxy_cfg "$LUNAR_HAPROXY_CONFIG" done < <(yq eval '.mTLS[] | .domain + " " + .cert + " " + (.ca // "nil")' "$mTLS_CONFIG") if ! $mtls_configured; then echo "------------------------------------------------------ mTLS Disabled ------------------------------------------------------" echo "mTLS certificate files configured in $mTLS_CONFIG not found, this will result in mTLS not being enabled" echo "Please ensure all mTLS certificate files are present and try again" else if [ ${#missing_certs[@]} -gt 0 ]; then echo "------------------------------------------------------ mTLS Warning ------------------------------------------------------" echo "Some mTLS certificate files configured in $mTLS_CONFIG were not found, this will result in unsupported mTLS providers" echo "Please ensure all mTLS certificate files are present and try again" echo "Missing certificates:" for cert in "${missing_certs[@]}"; do echo "$cert" done else echo "------------------------------------------------------ mTLS Status ------------------------------------------------------" echo "mTLS configuration loaded" fi fi echo "---------------------------------------------------------------------------------------------------------------------------" else echo "mTLS configuration file not found: $mTLS_CONFIG" fi fi

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheLunarCompany/lunar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server