Maison >Opération et maintenance >exploitation et maintenance Linux >Comment configurer https sous Linux Apache
Par défaut, le protocole de couche application du port 80 est utilisé pour la transmission via le protocole TCP. Le protocole http est principalement utilisé pour accéder aux ressources du World Wide Web.
Le nom complet est Secure Sockets Layer. Entre les couches de travail et de transport, les connexions réseau pour les protocoles de la couche application sont cryptées et protégées.
protocole http + protocole ssl. Par défaut, le port TCP 443 est utilisé.
Le processus de fonctionnement du protocole https :
Le client initie une requête HTTPS
L'utilisateur saisit une URL https dans le navigateur, puis se connecte au port 443 du serveur
Configuration du terminal de service
Les serveurs qui utilisent le protocole HTTPS doivent disposer d'un ensemble de certificats numériques. Vous pouvez les créer vous-même ou en faire la demande auprès de l'organisation. La différence est que le certificat que vous avez émis doit être vérifié par le client avant que vous puissiez continuer à y accéder, tandis que si vous utilisez un certificat appliqué par une entreprise de confiance, la page d'invite ne s'affichera pas. Ce certificat est en fait une paire de clés publiques et privées
Transférer le certificat du serveur au client
Le certificat est en fait la clé publique, et il contient également de nombreuses informations, telles que l'autorité émettrice de le certificat et le délai d'expiration Attendez
Le client analyse et vérifie le certificat du serveur
Cette partie du travail est effectuée par le TLS du client Il vérifiera d'abord si la clé publique est valide, comme : autorité émettrice, délai d'expiration, etc., si une exception est trouvée, une boîte d'avertissement apparaîtra, indiquant qu'il y a un problème avec le certificat. S'il n'y a aucun problème avec le certificat, une valeur aléatoire est générée. Utilisez ensuite la clé publique dans le certificat pour crypter asymétriquement la valeur aléatoire
Le client transmet les informations cryptées au serveur
Cette partie transmet la valeur aléatoire cryptée avec le certificat, le but est de laisser le serveur obtenez cette valeur aléatoire, la future communication entre le client et le serveur peut être cryptée et déchiffrée grâce à cette valeur aléatoire
Le serveur décrypte les informations
Le serveur décrypte les informations cryptées envoyées par le client avec le serveur clé privée, obtenue la valeur aléatoire transmise par le client
Le serveur crypte les informations et envoie les informations
1. Demandez un certificat pour le serveur Apache
3 Vérifiez https
Comment Apache demande un certificat
1. émission de certificat
2. Utilisez CentOS7 pour générer rapidement un certificat auto-signé
[root@ansible certs]# pwd /etc/pki/tls/certs [root@ansible certs]# ls ca-bundle.crt ca-bundle.trust.crt make-dummy-cert Makefile renew-dummy-cert #取消makefile文件中对私钥文件的加密 [root@ansible certs]# vim Makefile %.key: umask 77 ; \ #/usr/bin/openssl genrsa -aes128 $(KEYLEN) > $@ /usr/bin/openssl genrsa $(KEYLEN) > $@ #生成证书 [root@ansible certs]# make Makefile httpds.crt
3. Téléchargez un certificat gratuit via Alibaba Cloud et d'autres sites Web (nécessite un nom de domaine)
Configurez la fonction https d'Apache
Installez le mod_ssl. Après avoir installé le progiciel mod_ssl, Apache sera automatiquement généré des fichiers et des modules de configuration SSL.
[root@CentOS8 ~]# rpm -ql mod_ssl /etc/httpd/conf.d/ssl.conf #ssl模块的配置文件 /etc/httpd/conf.modules.d/00-ssl.conf #加载ssl模块 /usr/lib/.build-id /usr/lib/.build-id/e6/046e586d8d19fb92e3f8484a62203e841c3e2a /usr/lib/systemd/system/httpd-init.service /usr/lib/systemd/system/httpd.socket.d/10-listen443.conf /usr/lib64/httpd/modules/mod_ssl.so #模块文件 /usr/libexec/httpd-ssl-gencerts /usr/libexec/httpd-ssl-pass-dialog /usr/share/man/man8/httpd-init.service.8.gz /var/cache/httpd/ssl
Modifier le fichier de configuration :
[root@CentOS8 ~]# vim /etc/httpd/conf.d/ssl.conf SSLCertificateFile /data/apache/apache1.crt #apache的证书文件 SSLCertificateKeyFile /data/apache/apache1.key #apache的私钥文件 SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt #apache的证书链文件 证书链文件:不指定证书链文件,它就不知道这个证书是谁颁发的。证书链就是上级CA的证书
Vérification :
Définir le fichier d'hôtes Windows pour vérification
windows的hosts文件位置:C:\Windows\System32\drivers\etc 格式:ip地址 名字
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!