Installer le certificat SSL Apache
Achetez un certificat SSL sur www.ssls.com et installez-le sur CentOS.
[https://www.ssls.com/ssl-certificates/comodo-positivessl[https://www.ssls.com/ssl-certificates/comodo-positivessl)
Le prix du certificat Comodo PositiveSSL est de 14,97 USD pour 3 ans, de 4,99 USD pour 1 an et les sous-domaines ne sont pas pris en charge.
Pour acheter un certificat, allez sur ssls.com et cliquez sur le bouton avec l'icône de la carte à droite pour l'ajouter à votre panier.
Cliquez sur le bouton CHECKOUT pour procéder à l'achat par carte ou paypal.
Si vous procédez à l'achat, vous verrez un écran où vous insérez le CSR pour la délivrance du certificat.
Le fichier CSR crée un fichier CSR à l'aide de la commande openssl.
Dans la commande ci-dessous, site-domain doit être le nom de domaine tel que naver.com.
Saisissez les informations à utiliser pour la génération de clé, telles que le pays et l'état, et saisissez le mot de passe de défi et le nom facultatif de la société sous forme de valeurs vides en appuyant sur la touche Entrée.
# openssl req -new -newkey rsa:2048 -nodes -keyout site-domain.key -out site-domain.csr
Generating a 2048 bit RSA private key
............................................+++
..............................................................................................................................................................................
Country Name (2 letter code) [XX]:KR
State or Province Name (full name) []:Gyeonggi-do
Locality Name (eg, city) [Default City]:Ansan-si
Organization Name (eg, company) [Default Company Ltd]:Bonmade Ltd
Organizational Unit Name (eg, section) []:dev team
Common Name (eg, your name or your server's hostname) []:site-domain
Email Address []:appmania78@gmail.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Lorsque toutes les informations sont entrées, le fichier csr et le fichier clé sont créés.
#ls -l
합계 44
-rw-------. 1 root root 1305 8월 10 2015 anaconda-ks.cfg
-rw-r--r-- 1 root root 1078 8월 17 15:45 site-domain.csr
-rw-r--r-- 1 root root 1704 8월 17 15:45 site-domain.key
Le fichier csr doit être enregistré sur ssls.com et le fichier de clé doit être téléchargé sur le serveur Apache, alors gardez-le bien.
Copiez le contenu du fichier csr et entrez-le dans ssls.com. Collez tout de ------ BEGIN à ------ END ligne.
Le certificat prend en charge les deux domaines avec et sans www.
Choisissez si le serveur est Tomcat ou non.
Puisqu'il va être installé sur Apache, sélectionnez l'élément ci-dessous.
La méthode de vérification de la propriété du domaine est le téléchargement de fichiers, et sélectionnez le téléchargement de fichiers parmi les méthodes de courrier électronique.
Ensuite, vous devez télécharger un fichier pour prouver que vous possédez le domaine.
Tout d'abord, téléchargez le fichier texte en cliquant sur ENREGISTRER LE FICHIER D'ACTIVATION dans le coin supérieur droit, puis créez et téléchargez le dossier .well-known / pki-validation sur le serveur de fichiers du domaine qui possède le fichier à télécharger.
site-domain / .well-known / pki-validation / Si vous entrez le nom du fichier texte téléchargé, vérifiez si le contenu du fichier texte est visible.
Maintenant, attendez un peu, et le fichier de certificat SSL sera envoyé par e-mail.
Enregistrez le certificat en modifiant le fichier httpd.conf.
Ajoutez le port 443 et ajoutez les deux fichiers reçus par courrier électronique et le chemin où le fichier site-domain.key créé lors de la création de csr est téléchargé comme suit.
#vi /etc/httpd/conf/httpd.conf
<VirtualHost *:443>
DocumentRoot /var/www/html/webfile
ServerName www.site-domain
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl/quote-plus_com.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl/quote-plus.com.key
SSLCertificateChainFile /etc/httpd/conf/ssl/quote-plus_com.ca-bundle
</VirtualHost>
Puisque https utilise le port 443, vous devez vérifier si httpd écoute le port 443 avec la commande netstat.
# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1444/master
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1466/mysqld
tcp 0 0 0.0.0.0:1202 0.0.0.0:* LISTEN 20783/sshd
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 12315/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 31941/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1444/master
tcp6 0 0 :::80 :::* LISTEN 8184/httpd
tcp6 0 0 :::1202 :::* LISTEN 20783/sshd
tcp6 0 0 :::21 :::* LISTEN 11236/vsftpd
tcp6 0 0 ::1:631 :::* LISTEN 31941/cupsd
Si vous n'écoutez pas le port 443, vérifiez si openssl et mod _ssl sont installés.
# yum list installed openssl
# yum list installed mod_ssl
Installez un module qui n'est pas installé et redémarrez Apache.
#yum -y install openssl
#yum -y install mod_ssl
#service httpd restart
Si vous vérifiez à nouveau avec la commande netstat, le port 443 est Listerned.
# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1444/master
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1466/mysqld
tcp 0 0 0.0.0.0:1202 0.0.0.0:* LISTEN 20783/sshd
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 12315/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 31941/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1444/master
tcp6 0 0 :::443 :::* LISTEN 8654/httpd
tcp6 0 0 :::80 :::* LISTEN 8654/httpd
tcp6 0 0 :::1202 :::* LISTEN 20783/sshd
tcp6 0 0 :::21 :::* LISTEN 11236/vsftpd
tcp6 0 0 ::1:631 :::* LISTEN 31941/cupsd
[root@localhost ~]#
Si l'erreur suivante se produit lors de l'étape de modification du fichier httpd.conf et de redémarrage du service, vous pouvez en vérifier la cause avec la commande systemctl status httpd.service.
Cela se produit principalement lorsque le chemin du fichier de certificat est incorrect.
# service httpd restart
Redirecting to /bin/systemctl restart httpd.service
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
# systemctl status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 목 2017-08-17 18:34:30 KST; 5s ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 9766 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
Process: 9764 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 9764 (code=exited, status=1/FAILURE)
8월 17 18:34:30 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
8월 17 18:34:30 localhost.localdomain httpd[9764]: AH00526: Syntax error on line 202 of /etc/httpd/conf/httpd.conf:
8월 17 18:34:30 localhost.localdomain httpd[9764]: SSLCertificateKeyFile: file '/etc/ssl/crt/site-domain.key' does not exist or is empty
8월 17 18:34:30 localhost.localdomain systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
8월 17 18:34:30 localhost.localdomain kill[9766]: kill: cannot find process ""
8월 17 18:34:30 localhost.localdomain systemd[1]: httpd.service: control process exited, code=exited status=1
8월 17 18:34:30 localhost.localdomain systemd[1]: Failed to start The Apache HTTP Server.
8월 17 18:34:30 localhost.localdomain systemd[1]: Unit httpd.service entered failed state.
8월 17 18:34:30 localhost.localdomain systemd[1]: httpd.service failed.
Redémarrez le service et accédez à https dans votre navigateur et il apparaîtra comme un site authentifié.
# service httpd restart
Maintenant, vérifions le certificat installé.
Cliquez sur F12 dans Chrome pour ouvrir les outils de développement, puis cliquez sur le bouton Afficher le certificat dans l'onglet Sécurité pour vérifier le certificat.
Vérifiez la période de validité sur le certificat et renouvelez-le avant l'expiration
Pour rediriger http vers https, créez un fichier .htaccess et ajoutez le code ci-dessous.
Il y a des informations que vous pouvez ajouter à httpd.conf, mais cela n'a pas fonctionné, donc je l'ai ajouté à .htaccess.
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]
[http://egloos.zum.com/guswl47/v/6514311[http://egloos.zum.com/guswl47/v/6514311)
[https://www.instantssl.com/ssl-certificate-support/cert_installation/ssl-certificate-mod_ssl.html[https://www.instantssl.com/ssl-certificate-support/cert_installation/ certificat-ssl-mod_ssl.html)
[https://wiki.kldp.org/HOWTO/html/SSL-RedHat-HOWTO/ssl-redhat-howto-4.html (https://wiki.kldp.org/HOWTO/html/SSL-RedHat- HOWTO / ssl-redhat-howto-4.html)