Certificado de Cloudflare en nginx
Contenido
Los certificados de Cloudflare son trusted por Cloudflare, si el servidor no está conectado a Cloudflare los usuarios no tienen forma de validarlo y será igual que haber generado uno propio.
Generar el certificado TLS
Desde la Dashboard->Crypto.

Seleccionamos el tipo de certificado que queremos generar, en este caso RSA y la lista de hosts para los que son válidos. eg “*.example.com” o “blog.example.com” … etc

En el siguiente dialogo se nos presenta el certificado de origen y la clave privada con posibilidad de cambiar el formato del mismo, el mas comun para nginx o apache es PEM (seleccionado por defecto). Se copia el contenido de ambos recuadros a dos ficheros de texto en el servidor, en este caso cert.pem
y privkey.pem
.



Instalar el certificado
Se añade al bloque server
:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /ruta/al/cert.pem;
ssl_certificate_key /ruta/a/privkey.pem;
...
}
Authenticated Origin Pulls
La configuración anterior asegura a Cloudflare que está ‘hablando’ con nuestro servidor, pero el servidor no sabe si las requests vienen de Cloudflare o no. Usando Authenticated Origin Pulls podemos asegurarnos de que el servidor solamente responda a Cloudflare y cualquier petición que venga sin un certificado válido de Cloudflare será descartada.
Descargamos el certificado de Cloudflare en el servidor.
# wget https://support.cloudflare.com/hc/en-us/article_attachments/201243967/origin-pull-ca.pem
Se añade al bloque server
:
server {
...
ssl_client_certificate /ruta/al/origin-pull-ca.pem;
ssl_verify_client on;
...
}
Por último activamos la opción en Cloudflare (Dashboard->Crypto).
