Question simple, je voulais juste savoir comment installer des certificats SSL sur d'autres ports d'un serveur Web. J'essaie de faire en sorte qu'une application Web dispose d'un certificat SSL valide. J'utilise Apache2. J'ai déjà essayé de modifier le fichier virtualhost. Je ne sais même pas ce que j'essaie de faire.
Vous apportez des modifications dans le /etc/Apache2/ports.conf
d'Apache pour informer Apache d'écouter sur ces différents ports:
Listen 8080
<IfModule ssl_module>
Listen 446
</IfModule>
Les étapes seraient les suivantes:
Créez vos certificats SSL:
Créer un répertoire pour ajouter des certificats:
mkdir -p /etc/Apache2/ssl/example.com
Créez un certificat auto-signé:
Sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/Apache2/ssl/example.com/Apache.key –out /etc/Apache2/ssl/example.com/Apache.crt
Activez le module ssl avec: Sudo a2enmod ssl
Faites des entrées dans vos fichiers Virtualhost
(appelé example.conf), avec Sudo nano /etc/Apache2/sites-available/example.conf
<VirtualHost *:8080>
ServerAdmin webmaster@localhost
ServerName example.com
DocumentRoot /var/www/html
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:446>
ServerAdmin webmaster@localhost
ServerName example.com
DocumentRoot /var/www/html
# SSL Engine Switch:
# Enable/Disable SSL for this virtual Host.
SSLEngine on
# A self-signed (snakeoil) certificate can be created by installing
# the ssl-cert package. See
# /usr/share/doc/Apache2.2-common/README.Debian.gz for more info.
# If both key and certificate are stored in the same file, only the
# SSLCertificateFile directive is needed.
SSLCertificateFile /etc/Apache2/ssl/example.com/Apache.crt
SSLCertificateKeyFile /etc/Apache2/ssl/example.com/Apache.key
</VirtualHost>
</IfModule>
Dites à Apache d'écouter les nouveaux ports en ajoutant les ports au fichier /etc/Apache2/ports.conf
:
Listen 8080
<IfModule ssl_module>
Listen 446
</IfModule>
<IfModule mod_gnutls.c>
Listen 446
</IfModule>
446
par rapport à 443
.Activer les fichiers de configuration:
Sudo a2ensite example
Redémarrez Apache:
Sudo systemctl restart Apache2
D'abord, vous devriez lire ces réponses:
Sur la base des réponses ci-dessus, les étapes sont les suivantes:
Créez un nouveau fichier de configuration VirtualHost, dédié à votre port supplémentaire. Supposons qu'il s'agit du port 99
et que le nom du fichier de configuration est https-99.conf
:
Sudo nano /etc/Apache2/sites-available/https-99.conf
Le contenu de https-99.conf
devrait ressembler à ceci:
<IfModule mod_ssl.c>
Listen 99
<VirtualHost *:99>
ServerName www.example.com
DocumentRoot /var/www/html-99
<Directory /var/www/html-99>
Options None FollowSymLinks
AllowOverride None
# To enable .htaccess Overrides: AllowOverride All
DirectoryIndex index.html index.php
Order allow,deny
Allow from all
Require all granted
</Directory>
ErrorLog ${Apache_LOG_DIR}/https-99.error.log
CustomLog ${Apache_LOG_DIR}/https-99.access.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/www.example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/www.example.com/chain.pem
</VirtualHost>
</IfModule>
Copiez le contenu ci-dessus et dans nano
, utilisez: Shift+Insert pour la pâte; Ctrl+O et Enter pour sauver; Ctrl+X pour la sortie.
Activer le fichier de configuration:
Sudo a2ensite https-99.conf
Générer cryptons fichiers de certificat:
Sudo letsencrypt --Apache certonly --rsa-key-size 4096 --email [email protected] -d www.example.com
Où [email protected]
et www.example.com
doivent être réels.
Ouvrez le port 99
dans le pare-feu:
Créez le répertoire DocumentRoot
:
Sudo mkdir /var/www/html-99
Mettez du contenu simple dans le répertoire DocumentRoot
:
echo 'Hello!!!' | Sudo tee /var/www/html-99/index.html
Rechargez la configuration d'Apache:
Sudo service Apache2 reload
Sudo systemctl reload Apache2.service
Essayez d'ouvrir https://www.example.com:99
via le navigateur. Le résultat devrait être: