Maison >Opération et maintenance >exploitation et maintenance Linux >Comment configurer https sous Linux Apache

Comment configurer https sous Linux Apache

王林
王林avant
2023-05-21 19:55:371757parcourir

Protocole http :

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.

Protocole SSL (Secure Sockets Layer) :

  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 https :

  protocole http + protocole ssl. Par défaut, le port TCP 443 est utilisé.

Comment configurer https sous Linux Apache

Le processus de fonctionnement du protocole https :

Comment configurer https sous Linux Apache

  • 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

      Le chargement du module correspondant peut réaliser la fonction correspondante.
  • Processus :


    1. Demandez un certificat pour le serveur Apache

  • 2. Configurez la fonction https d'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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer