Fortigate: Demander un certificat LetsEncrypt derrière un reverse proxy Apache
Cette fonctionnalité n'existe qu'à partir de FortiOS 7.0 |
Introduction[modifier | modifier le wikicode]
LetsEncrypt utilise obligatoirement les ports par défaut pour vérifier la propriété d'un FQDN, ce qui dans le cas d'un Fortigate peut poser problème. En effet il est possible que le port 80 ai été redirigé vers un serveur web rendant impossible l'utilisation directe.
Dans ce cas il est possible d'ajouter sur le serveur web vers lequel est redirigé le port 80 un reverse proxy afin de renvoyer vers une interface du Fortigate qui sera utilisée par le client LetsEncrypt interne.
Configuration Fortigate[modifier | modifier le wikicode]
Je reviendrais pas sur la partie requête du certificat, la documentation officielle fonctionne très bien. Vous pouvez la trouver ici: http://docs.fortinet.com/document/fortigate/7.0.0/new-features/822087/acme-certificate-support
Si vous avez choisi, pour ACME, une interface qui permet d'accéder à l'admin du Fortigate les ports par défaut doivent obligatoirement être modifié pour http.
L'IP de l'interface choisi sera celle à utiliser dans votre configuration Apache pour FORTIGATE_INTERFACE_IP.
Configuration Apache[modifier | modifier le wikicode]
Ensuite il faudra configurer votre reverse proxy dans apache de la manière suivante:
<VirtualHost *:80>
ServerName FORTIGATEFQDN
ProxyPass / http://FORTIGATE_INTERFACE_IP/
ProxyPassReverse / http://FORTIGATE_INTERFACE_IP/
ProxyPreserveHost On
</VirtualHost>
Si vous souhaitez en profiter pour ajouter des reverse proxy afin d'accéder à l'admin on peut le faire simplement il vous faudra probablement demander à apache de ne pas vérifier le certificat du fortigate afin de ne pas risquer d'être bloqué.
On peut le faire en ajoutant les options suivantes dans le vhost:
SSLProxyEngine On
SSLProxyCheckPeerCN off
SSLProxyCheckPeerExpire off