I attempted to use the WSDL and override the required setting but hit issues with the schemaLocation from the WSDL as this was also insecure and using the IP. Further to that the xsd files all referred to the non-secure IP and felt that having to modify these was just to much. Given this I did some digging on the AES server. I found that the init script for aesvcs (/etc/init.d/aesvcs) seemed to be responsible for generating the WSDL and xsd files so after a little playing I edited it to insert HTTPS and the hostname rather than http and the IP. This fits my needs and while it's unlikely to fit anyone elses (and will probably be broken by updates) i've included it here just in case.
I've only included the bit of the aesvcs init that I edited it should be fairly easy to see where it goes;
# Create temporary lock file and attempt to create a hard link
# The hard link fill guarantee that no one has created the file between
# the if condition and here.
echo $$ > $SMS_TEMP
ln $SMS_TEMP $SMS_LOCK > /dev/null 2>&1
if [ $? -eq 0 ] ; then
# First check if the server IP has changed and only update if it has.
USEHOSTNAME=true
TRANSPORT="https"
OLDIP=`perl -nle 'while(m/(http:\/\/)(.*?)(\/smsxml\/SystemManagementService.php)/g){print $2} ' /opt/mvap/web/smsxml/SystemManagementService.wsdl`
OLDTRANSPORT=`perl -nle 'while(m/(http|https)(:\/\/)(.*?)(\/smsxml\/SystemManagementService.php)/g){print $1} ' /opt/mvap/web/smsxml/SystemManagementService.wsdl`
if $USEHOSTNAME ; then
SERVERIP=`hostname -f`
else
SERVERIP=`hostname -i`
vIPadd=`/sbin/ifconfig eth0:0 |egrep inet`
if [ "$vIPadd" != "" ] && [ -f "/etc/sysconfig/network-scripts/ifcfg-eth0:0" ]
then
SERVERIP=`egrep IPADDR /etc/sysconfig/network-scripts/ifcfg-eth0:0`
SERVERIP=${SERVERIP##*=}
fi
fi
echo $SERVERIP
if [ "$OLDIP" != "$SERVERIP" ] || [ "$OLDTRANSPORT" != "$TRANSPORT" ]; then
echo "DOING SOME UPDATING"
SMS_NOTE_UPDATE="Detected new IP address ($SERVERIP) - updating SMS discovery!"
logger $0[$$] $SMS_NOTE_UPDATE
echo $SMS_NOTE_UPDATE
# Found new IP address update the schema and wsdls
perl -pi -e "s/(http|https)(:\/)(.*?)(\/sms\/SystemManagementServie.php)/$TRANSPORT\2\/$SERVERIP\4/" /opt/mvap/web/sms/SystemManagementService.wsdl
perl -pi -e "s/(http|https)(:\/)(.*?)(\/smsxml\/SystemManagementService.php)/$TRANSPORT\2\/$SERVERIP\4/" /opt/mvap/web/smsxml/SystemManagementService.wsdl
perl -pi -e "s/(schemaLocation=\")(http|https)(:\/)(.*?)(\/smsxml\/xsd\/models)/\1$TRANSPORT\3\/$SERVERIP\5/" /opt/mvap/web/smsxml/xsd/models/*.xsd
perl -pi -e "s/(schemaLocation=\")(http|https)(:\/)(.*?)(\/smsxml\/xsd\/models)/\1$TRANSPORT\3\/$SERVERIP\5/" /opt/mvap/web/smsxml/SystemManagementService.wsdl
fi
# Always remove the lock file
rm -f $SMS_LOCK
else
# Link creation failed, must be someone running concurrently
SMS_WARN_LN="WARNING - Detected concurrent aesvcs start() execution! (link creation failed) - PID[`cat $SMS_LOCK`]"
echo $SMS_WARN_LN
fi
I can edit the USEHOSTNAME variable to set if the hostname of the aes should be used rather than the IP and the TRANSPORT can switch between http or https. As I said it works for me and I have no idea if another part of the aes can also generate the wsdl but so far so good.