« Fortigate: Demander un certificat LetsEncrypt derrière un reverse proxy Apache » : différence entre les versions

De Adadov.net wiki
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
{{Auteur|Adadov}}
{{Auteur|Adadov}}
{{Warning|Cette fonctionnalité n'existe qu'à partir de FortiOS 7.0}}
{{Warning|Cette fonctionnalité n'existe qu'à partir de FortiOS 7.0}}
== Introduction ==
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 ==
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
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.
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 ==
Ensuite il faudra configurer votre reverse proxy dans apache de la manière suivante:
Ensuite il faudra configurer votre reverse proxy dans apache de la manière suivante:


Ligne 11 : Ligne 21 :
ServerName FORTIGATEFQDN
ServerName FORTIGATEFQDN


ProxyPass / http://FORTIGATEIP/
ProxyPass / http://FORTIGATE_INTERFACE_IP/
ProxyPassReverse / http://FORTIGATEIP/
ProxyPassReverse / http://FORTIGATE_INTERFACE_IP/
ProxyPreserveHost On
ProxyPreserveHost On
</VirtualHost>
</VirtualHost>

Version du 10 mai 2021 à 10:33

Ecrit Par : Adadov

Introduction

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

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

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