Configurer NGINX + CloudFlare + SSL
DONC...
J'ai un nœud de l'application en cours d'exécution sur un serveur sur le port 8080 et je suis en train de permis de travail sur le protocole SSL à l'aide de NGINX et CloudFlare. Notez les points suivants...
- Mon hôte est en cours d'exécution Ubuntu 16.04 LTS
- Je suis actuellement en utilisant CloudFlare Universel de cryptage SSL (niveau gratuit)
- J'ai mon test d'hôte DNS le programme d'installation comme test.company.com
- J'ai copié le CloudFlare origine pull cert de cette post à mon test de la boîte de /etc/nginx/certs
...mon précédent NGINX configuration ressemblait...
server {
listen 80;
location /{
proxy_pass http://localhost:8080;
}
}
...il ressemble maintenant...
# HTTP
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
return 301 https://$host$request_uri;
}
# HTTPS
server {
listen 443;
server_name test.company.com;
ssl on;
ssl_client_certificate /etc/nginx/certs/cloudflare.crt;
ssl_verify_client on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
location /{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:8080/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
}
...J'ai suivi l'exemple ici et le lien qu'il fournit ici et je suis sceptique que tout ci-dessus est nécessaire (je suis un minimaliste). Chaque fois que j'exécute sudo nginx -t
j'ai encore des messages d'erreurs autour de ssl_certificate et ssl_certificate_key pas être spécifié. Je ne peux pas savoir comment télécharger le besoin des fichiers à partir de CloudFlare et de ce que je comprends, je ne crois pas que j'en aurais besoin.
Si j'ai essayer de ré-utiliser le CloudFlare origine pull cert à la fois comme le ssl_certificate et ssl_certificate_key, j'obtiens l'erreur nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/nginx/certs/cloudflare.crt") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: ANY PRIVATE KEY error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)
Je suis convaincu qu'il est possible de créer mon propre certificat auto-signé, mais je suis de la planification sur l'utilisation de cette stratégie, éventuellement, à faire tourner des machines de production. Toute aide sur de me pointer dans la bonne direction est beaucoup apprécié.
Il a été un moment depuis que j'ai été à la recherche dans ce, mais je pense que lorsque vous créez d'abord un CloudFlare distribution (ou peu importe son nom), le ssl_certificate_key est fourni à l'époque, à la fois... et qui doit être utilisé avec le certificat que vous pouvez télécharger à partir de CloudFlare à tout moment. Au moment où j'ai écrit cela, je pense que je n'avais tout simplement pas accès à l'original du fichier de clé. J'espère que ça aide, mais encore une fois, je ne suis vraiment pas sûr.
OriginalL'auteur Lane | 2016-12-19
Vous devez vous connecter pour publier un commentaire.
On dirait que vous êtes à l'aide de Cloudflare Origine CA service, sympa!
La question on dirait que vous avez de mettre votre clé privée SSL dans le
ssl_client_certificate
attribut et ne pas mettre votre vrai certificat SSL dans votre configuration. Votre Nginx configuration SSL doit contenir les lignes suivantes à la place:ssl_certificate /path/to/your_certificate.pem;
ssl_certificate_key /path/to/your_key.key;
Assurez-vous que le Certificat SSL correspond à l' .Fichier PEM avec le bon contenu, et le fichier de Clé de Certificat contient l' .Fichier de CLÉ avec le bon contenu.
Pour générer un certificat d'Origine CA, accédez à la Crypto section de la Cloudfalre tableau de bord. À partir de là, cliquez sur le bouton Certificat dans les Certificats de l'Origine de la section. Une fois que vous avez terminé les étapes de l'assistant, vous verrez une fenêtre qui vous permet de télécharger le fichier de certificat et le fichier de clé. Assurez-vous de les mettre dans les bons fichiers et les installer sur votre serveur web.
Pour en savoir plus:
OriginalL'auteur mjsa