Comment Installer et générer un certificat Letsencrypt sur Apache sous Windows server?

Bonjour à tous,
Avec ces beaux jours de confinements, me voila embarqué dans une histoire de certificat SSL…

J’ai un pc avec Windows Server 2019.
Sur ce pc, j’ai un logiciel pour mon boulot, qui intègre “Glassfish”
Glasshfish me diffuse un intranet sur le 192.168.1.195:8080

En raison du confinement, je dois avoir accès à cette intranet à distance.
J’ai dans un premier temps, ouvert le port 8080 de 192.168.1.195 de ma box Pro.
De la, j’arrive à avoir accès à mon intranet, via l’ip public du boulot :8080

Comme, je ne veux voir l’ip public en barre d’adresse, j’ai dans un second temps créé une redirection chez OVH, d’un sous domaine “test.exemple.com” sur mon adresse ip public Pro. (avec redirection invisible, pour que la barre d’adresse ne bouge pas)

Maintenant, j’ai bien accès à mon intranet via test.exemple.com (qui est donc redirigé sur 192.168.1.195:8080 de Glassfish !

C’est à ce moment là, que le SSL est arrivé à mon esprit !!! Car en effet: ok, j’ai bien accès, mais cela n’est pas sécurisé. Donc comment faire ?

Le fournisseur du logiciel pro avec Glasshfish, me dit qu’il faut installé “Apache” pour pouvoir installé un certificat…

C’est parti pour Apache:

Installation Apache2.4.4 win64
Config pour lui indiquer le chemin par défaut du serveur
apache2.4\conf\httpd.conf

Ensuite:
Création du service apache pour le soft pro:
httpd.exe -k install -n “soft pro” (Qui sera relancé à chaque modif d’un fichier config ou autre…)

Pour avoir le fameux : ITS WORKS de Apache
Je dois impérativement modifier le port d’écoute:80, en ce que je veux… ex:90
(aucune idée pk 80 ça marche pas, il doit déjà être utilisé par quelques choses d’autre…)
L’adresse localhost:90 fonctionne: ITS WORKS

Ensuite: Redirection:
Activation des modules suivants du fichier “httpd.conf”
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_module modules/mod_proxy.so

Puis création du fichier “proxy_http.conf”
<VirtualHost *:90>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

Puis ajout de:
Include conf/proxy_http.conf
dans “httpd.conf”

Maintenant, (En local bien-sur, non pas à distance) j’ai bien accès à l’intranet, via 192.168.1.195:8080 de Glassfish + 192.168.1.195:90 de Apache

Mise en place HTTPS
Activation des modules suivants:
LoadModule ssl_module modules/mod_ssl.so
LoadModule rewrite_module modules/mod_rewrite.so

Et c’est maintenant que je dois installer Letsencrypt et générer mes certificat.
J’ai donc installé “win-acme.v2.1.5.742.x64.trimmed” mais je suis coincé par partir de là.

Je ne trouve pas d’INFO A JOUR pour une installe sur Windows !!!

Pouvez vous svp me venir en aide ?

Bien cordialement.

Can you read English?

You need port 80 if you want to use http-01 validation. Alternatives are tls-alpn-01 (uses port 443) and dns-01 (uses no port but needs access to edit the dns zone for your domain).

How you’ll install a certificate will depend on your acme client and you should read their documentation, they might have instructions for apache.

Thank you 9peppe for your answer.
Yes, i can read English, but I’m not very sure of what you said.
That’s why i would prefer in French !
You mean that, it i not use port 80, Letsencrypt will not work ?

No, I mean that you have to use another type of verification challenge.

Please note that you can still use port 80 if there’s another server on there, the problem arises only when it’s blocked.

If i understood correctly:

it is written that:

HTTP-01 = Work only on port 80

DNS-01 = I do not have a domain controler, it’s just a web server in local with Apache (then i can’t add some : TXT; A; or CNAME

TLS-SNI-01 = It was disabled in March 2019 because it was not secure enough…

TLS-ALPN-01 = It’s not supported by Apache, Nginx, or Certbot, and probably won’t be soon.

So, what can I do ?

Why i can’t use “win-acme.v2.1.5.742.x64.trimmed” to make my cartificate ?
If I run wacs.exe
What the step by step tutorial with : M: Create new certificate (full options) ???
Is possible in French :stuck_out_tongue:

You can use tls-alpn-01 with another client (assuming port 443 is open). https://letsencrypt.org/docs/client-options/#clients-windows-/-iis

Apache not supporting it only means that you’ll have to turn it off momentarily while you renew the certificate.

It looks like your client supports it: https://www.win-acme.com/reference/cli#selfhosting-plugin

1 Like

Si besoin de traduire une partie en particulier, demande-moi.

C’est gentil merci.
Mon souci n’est pas la traduction pour le moment.
Mais, il est plus de trouver quelqu’un qui puisse m’expliquer étape par étape la procédure. (En français)
Je ne veux pas de liens internet sur d’autre problèmes qui vont me prendre des jours à résoudre.
Je veux juste savoir, comment générer SOUS WINDOWS un certificat LESENCRYPT pour APACHE.
Et en aucun cas pour IIS ou autre.
Simplement pour un server web LOCAL >>> DONC SANS NOM DE DOMAINE

La redirection que je fais chez OVH pour test.exemple.com ne rentre pas en compte pour le certificat.
Du moins je ne pense pas !

J’ai d’ailleurs déja la procédure pour inclure les certificats à Apache.
J’aimerai juste de l’aide pour leurs créations. !

Ce n’est pas possible avec une autorité de certification publique comme Let’s Encrypt: https://letsencrypt.org/fr/docs/certificates-for-localhost/

Merci tdelmas.
Ça au moins, on peux pas plus clair.
Auquel cas, est ce que quelqu’un aurai des recommandations pour un autre certificat SSL ?
Merci d’avance

Il faut le générer soi-même comme expliqué dans le lien et l’ajouter comme certificat de confiance dans son navigateur.