Prefacio
-
En el desarrollo diario, cuando accedemos a proyectos en la red pública, normalmente utilizamos una conexión segura, comenzando con https:// (muy pocos http://)
-
Cuando configuramos el servidor de nombres de dominio nosotros mismos, http se reenvía a través de Nginx, esto se debe a que no hemos configurado un certificado.
-
El navegador notará que nuestra transmisión no está cifrada según el estándar, por lo que determinará que nuestra conexión no es segura, pero no afectará al uso.
-
De hecho, cuando el nombre de dominio es nuestro, existe una solicitud de certificado SSL gratuita correspondiente, pero no la solicitamos nosotros mismos.
Condiciones y condiciones
-
Mi nombre de dominio fue comprado por Alibaba Cloud (resolución de nombre de dominio) y el servidor es Tencent Cloud (servidor en la nube liviano)
-
Y el servidor y el nombre de dominio se han registrado y se puede acceder a ellos normalmente. El servidor es una imagen de Windows.
-
Venga a Alibaba Cloud para solicitar el certificado SSL del nombre de dominio. El certificado SSL del nombre de dominio es una correspondencia uno a uno (también es necesario solicitar el nombre de dominio de segundo nivel)
-
Asegúrese de ir al servidor y comprobar si el puerto https-443 está abierto; normalmente está abierto de forma predeterminada.
Proceso de implementación
1. Primero abrimos Alibaba Cloud - iniciamos sesión para comprar una cuenta de nombre de dominio - hacemos clic en buscar en la consola - servicio de administración de certificados digitales
2. Haga clic en el certificado gratuito; debe hacer clic para crear un certificado virtual por primera vez (hay 20 gratuitos)
3. Haga clic en Crear certificado nuevamente; aparecerá una línea debajo; haga clic en Solicitud de certificado a la derecha; complete la información correspondiente; envíela para revisión; generalmente tardará unos 10 minutos en pasar y se le notificará por SMS y correo electrónico.
4. Descargue el certificado SSL en modo Nginx: vea la documentación de uso (después de pasar la revisión, aparecerá un botón de descarga a la derecha)
5. Vaya al archivo nginx-html del servidor: cree un archivo ssl para almacenar el certificado.
6. Modifique el archivo de configuración nginx-conf-nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# 这个server负责默认转发到https,配置证书之后,只是http和https都可以访问,但是默认还是http访问
# 这一段是默认https访问-官方文档有讲
server {
listen 80;
#填写证书绑定的域名
server_name 你的域名;
#将所有HTTP请求通过rewrite指令重定向到HTTPS。
rewrite ^(.*)$ https://$host$1;
location / {
index index.html index.htm;
}
}
server {
#listen 80;
#定义服务器的默认网站根目录位置
server_name 你的域名;
# 开启ssl证书-这种写法淘汰-会报错
#ssl on;
# 开启https端口-默认
listen 443 ssl;
# 证书凭证-./相对路径
ssl_certificate ./html/SSL/FW/你的域名.pem;
ssl_certificate_key ./html/SSL/FW/你的域名.key;
# 系统配置-可要可不要
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
#表示优先使用服务端加密套件。默认开启
ssl_prefer_server_ciphers on;
location / {
root html/fw/dist;
index index.html index.htm;
try_files $uri $uri/ /index.html; #解决页面刷新404问题
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
7. Utilice el comando de reinicio nginx para actualizar la configuración.
nginx -s recargar
8. La entrada predeterminada es https (conexión segura) y no se informa ningún error, lo que indica que la configuración se realizó correctamente.
detalle
-
Después de descargar el certificado SSL y colocarlo en el servidor, intente no cambiar el nombre (www./sin www. no lo afectará)
-
Al introducir el certificado, utilice (./) - nombre relativo, asegúrese de comprobar la ruta - para evitar errores
Recopilación de informes de errores
1. Habilite el comando ssl para descartar el error: la directiva ssl está obsoleta
Solución: cambie el comando
# 开启ssl证书-这种写法淘汰-会报错
# ssl on;
# 开启https端口-默认-改用下面写法
listen 443 ssl;
2. Introduzca la ruta del certificado SSL e informe el error: no se puede cargar el certificado
solución
Verifique la ruta; se recomienda usar ./ ruta
3. Cuando se descubre que el certificado SSL está configurado, no se informa ningún error y el inicio se realiza correctamente. Cuando el acceso sigue siendo http, es porque la capa del servidor no está configurada - nota
Resumir:
Después de pasar por este proceso, creo que también tendrá una impresión profunda inicial sobre los detalles de la configuración del certificado SSL de Nginx y el proceso de cifrado en https (la directiva SSL está obsoleta; no se puede cargar el certificado), pero en el desarrollo real, la situación que Lo que encontramos debe ser diferente, por lo que debemos comprender sus principios y nunca desviarnos de sus orígenes. ¡Vamos, golpea a los trabajadores!
Por favor señale cualquier deficiencia, gracias - Feng Guo Wuhen