No final, implementei o requisito do nosso parceiro da seguinte forma:
- inicie uma instância na AWS
- alocar e anexar um Elastic IP (EIP) a ele
- Apache instalado
- (no nosso caso, instalamos nosso certificado SSL)
- Configurou o Apache como um servidor proxy reverso, encaminhando para um CNAME que apontava para o nosso ELB
Aqui está uma amostra da configuração do host virtual Apache. Eu desliguei NameVirtualHost
e especifiquei o endereço do nosso EIP. Eu também desativei um host padrão. Se o parceiro desejar, adicionarei um bloco <Directory>
que aceita solicitações apenas do seu intervalo de IPs.
<IfModule mod_ssl.c>
# Catch non-SSL requests and redirect to SSL
<VirtualHost 12.34.567.890:80>
ServerName our-static-ip-a-record.example.com
Redirect / https://our-elb-cname.example.com
</VirtualHost>
# Handle SSL requests on the static IP
<VirtualHost 12.34.567.890:443>
ServerAdmin [email protected]
ServerName our-static-ip-a-record.example.com
# SSL Configuration
SSLEngine on
SSLProxyEngine on
SSLProxyCACertificateFile /etc/apache2/ssl/gd_bundle.crt
SSLCertificateFile /etc/apache2/ssl/example.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/private.key
# Additional defaults, e.g. ciphers, defined in apache's ssl.conf
# Where the magic happens
ProxyPass / https://our-elb-cname.example.com/
ProxyPassReverse / https://our-elb-cname.example.com/
# Might want this on; sets X-Forwarded-For and other useful headers
ProxyVia off
# This came from an example I found online, handles broken connections from IE
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
Espero que isso economize alguém no futuro: -)