Configuración de HTTPS para Nginx
HTTPS significa Hypertext Transfer Protocol Secure y es la versión segura de HTTP, el protocolo utilizado para la comunicación entre su navegador web y un sitio web. HTTPS encripta los datos que se envían y reciben, lo que garantiza que la comunicación sea segura y privada.
Hace algún tiempo utilicé VPS para algunos de mis proyectos. Necesitaba ejecutar PHP y NodeJS en el servidor y configurar dominios para estos proyectos. Se eligió Nginx como servidor proxy, en el que se configuraron los dominios. El sistema operativo del servidor era Ubuntu. Para que los dominios funcionaran, se tuvo que configurar HTTPS. Para generar certificados SSL, se eligió el centro de certificación gratuito Let’s Encrypt.
Obtenga un certificado
sudo letsencrypt certonly -a webroot --webroot-path=/var/www/site.com/public_html -d site.com -d www.site.com
Renovar el certificado
sudo letsencrypt renew
Configuración completa de nginx
server {
listen 80 ;
server_name site.com.ru www.site.com;
return 301 https://$server_name$request_uri;
}
server {
# SSL configuration
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name site.com www.site.com;
ssl_certificate /etc/letsencrypt/live/site.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/site.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/site.com/chain.pem;
add_header Content-Security-Policy "img-src https: data:; upgrade-insecure-requests";
# We keep access log:
access_log /var/log/nginx/site.com_access.log;
# We share static and dynamic, static stored in cache for 10 days:
location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|doc|docx|pdf|xls|xlsx|rar|zip|tbz|7z|exe)$ {
root /var/www/site.com/public_html;
expires 10d;
}
# htaccess and htpasswd do not give:
location ~ /\.ht {
deny all;
}
# We want to see statistics when accessing the /stat folder
location = /stat {
stub_status on;
access_log off;
}
location / {
proxy_pass http://site.com:8888/;
proxy_redirect off;
log_not_found off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTPS on;
}
}
No olvides reiniciar nginx
sudo /etc/init.d/nginx restart
Publicaciones similares:
-
Cómo eliminar www de la dirección de un sitio web
Al configurar un sitio web, uno de los detalles técnicos más importantes es elegir la versión de dominio preferida: con o sin "www". Desde la perspectiva del SEO, esta de...
-
Realizar una consulta en Salesforce con SSJS
Al trabajar con Salesforce Marketing Cloud, es posible que necesite enviar datos a un servicio externo o recuperar contenido de forma dinámica según los parámetros de la ...
-
Cómo proteger un sitio web o directorio con contraseña mediante .htaccess y .htpasswd
Proteger un sitio web o un directorio específico con una contraseña es una forma sencilla pero eficaz de restringir el acceso. Esto se puede hacer mediante los archivos ....
Leave a Reply