Comment nginx empêche-t-il l'expiration du certificat SSL ?
nginx configure des certificats SSL gratuits et des mises à jour régulières des certificats
Environnement contos 6, émission de certificat Let's Encrypt
La condition préalable à la génération de certificat est que le nom de domaine est disponible, c'est-à-dire qu'il a été enregistré et résolu en une adresse IP spécifique par DNS
1 Installez epel,
>yum install epel-release
2 Téléchargez l'outil de génération de certificat certbot. certbot-auto
>wget https://dl.eff.org/certbot-auto --no-check-certificate
3 , Dépendances des outils d'installation
>chmod +x certbot-auto >./certbot-auto -n
4. Générer un certificat
Nom de domaine unique :
>./certbot-auto certonly --email my@163.com --agree-tos --no-eff-email --webroot -w /usr/local/nginx/html/xue/ -d www.xue37.cn
Remarque : Remplacer l'e-mail, le site Web répertoire et nom de domaine
Noms de domaine multiples :
>./certbot-auto certonly --email my@163.com --agree-tos --no-eff-email --webroot -w /usr/local/nginx/html/xue/ -d www.xue37.cn -d xue37.cn
Le certificat est généré dans le répertoire /etc/letsencrypt/live/www.xue37.cn/ (il y aura un message d'invite après l'exécution la commande à l'adresse spécifique générée)
5. Extension du certificat (car la période de validité du certificat est de 90 jours)
L'outil certbot-auto prend en charge les opérations d'extension de certificat, vous pouvez donc utilisez la tâche planifiée crontab pour étendre automatiquement le certificat régulièrement
>0 3 * * * /root/certbot-auto renew --disable-hook-validation --renew-hook "/usr/local/nginx/sbin/nginx -s reload"
Effectuez l'extension du certificat à 3 heures tous les jours, et l'expression crontab peut être Baidu vous-même
Remarque :
Vous pouvez d'abord l'exécuter séparément :
/root/certbot-auto renew --disable-hook-validation --renew-hook "/usr/local/nginx/sbin/nginx -s reload"
Je suis invité ici. Les certificats suivants ne doivent pas encore être renouvelés, ce qui signifie que le certificat n'a pas expiré et qu'il n'y a pas d'autres erreurs. Par conséquent, afin d'éviter que le certificat n'expire trop longtemps, vous pouvez le configurer pour effectuer des opérations d'extension tous les jours
6 Ajouter la configuration du certificat à nginx
server { listen 443 ssl; server_name www.xue37.cn; ##这里是你的域名 ssl_certificate /etc/letsencrypt/live/www.xue37.cn/fullchain.pem; #前面生成的证书,改一下里面的域名就行 ssl_certificate_key /etc/letsencrypt/live/www.xue37.cn/privkey.pem; #前面生成的密钥,改一下里面的域名就行 ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; access_log /data/application/logs/xue.access.log main; location ^~ /bot { proxy_pass http://xue-server; include proxy-params.conf; } location / { root html/xue; index index.html index.htm; } location = /50x.html { root html; } }
Définir 80 port 301. à 443
Modifier la configuration de nginx :
server { listen 80; server_name localhost; location /.well-known/ { add_header Content-Type 'text/plain;'; root /usr/local/nginx/html/xue; } location / { return 301 https://www.xue37.cn$request_uri; } }
Remarque : nginx doit être redémarré après modification : /usr/local/nginx/sbin/nginx -s reload
Remarque : La configuration nginx doit être traitée
location ~ /\. { deny all; }
Supprimez ou commentez cette configuration ou ajoutez-la devant cette configuration (veuillez l'ignorer s'il n'existe pas de telle configuration)
location ~ /.well-known { allow all; }
Pour plus d'informations techniques liées à Nginx articles, veuillez visiter le Tutoriel d'utilisation de NginxColonne pour apprendre !
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!