J'ai un certificat ssl installé sur un équilibreur de charge AWS ( app1.company.com) et une instance avec Tomcat réside derrière le LB.

Si j'ouvre https://app1.company.com:8443/ , je peux voir que la connexion est sécurisée/verrou valide sur la barre d'URL. Si j'ouvre avec l'adresse IP privée de Tomcat, je vois que la connexion n'est pas sécurisée.

Je suis conscient que les certificats ne se lient généralement qu'au domaine (ou ne sont censés le faire). Et personne n'utilisera l'adresse IP pour accéder à l'application, sauf peut-être l'équipe qui gère l'application. Maintenant que je dois renouveler le certificat, je me demande si je dois également l'installer sur le magasin de clés tomcat qui est spécifié dans $TOMCAT_HOME/conf/server.xml

        <Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="/home/ec2-user/tomcat.keystore" keystorePass="password"
           clientAuth="false" sslProtocol="TLS"/>

À l'heure actuelle, ce fichier n'a pas le certificat importé pour app1.company.com (car il est installé sur l'équilibreur de charge). Suffirait-il simplement de remplacer le nouveau certificat dans l'équilibreur de charge AWS et de laisser le keystore Tomcat tel quel ?

answer

Je vous suggère de bloquer l'accès direct au serveur car c'est une porte dérobée dans le serveur et une attaque DDOS. Je ferais cela en plaçant l'instance de Tomcat dans un sous-réseau privé. Si vous devez l'avoir dans un sous-réseau public, je m'assurerais que seules quelques choses peuvent l'atteindre - l'ALB (l'utilisation de la plage CIDR VPC est la plus simple) et les adresses IP spécifiées. S'il est privé, vous pouvez utiliser AWS Session Manager pour accéder au serveur à partir de la console AWS.

Votre ALB peut utiliser ACM (AWS Certificate Manager) qui émet et renouvelle gratuitement les certificats. La seule raison pour laquelle je peux penser à utiliser un autre bureau d'enregistrement est si vous avez besoin de certificats de validation étendue ou d'une autre fonctionnalité. Les certificats ACM ne peuvent être utilisés que sur des équilibreurs de charge et dans CloudFront, pas sur votre propre serveur.

Vous pouvez mettre un certificat sur l'instance, mais je ne suis pas sûr que cela en vaille la peine.