Configurar o NGINX + CloudFlare + SSL
tenho uma aplicação de nós a correr num servidor na porta 8080 e estou a tentar permitir que funcione sobre o SSL usando o NGINX e o CloudFlare. Observe o seguinte...
-
O meu hospedeiro está a gerir o Ubuntu 16.04 LTS
- estou a usar o SSL Universal de CloudFlare (nível livre)
- Tenho o meu hospedeiro de teste DNS configurado como test.company.com Copiei a origem de CloudFlare, retira o cert deste post para a minha caixa de testes. /etc/nginx / certs
... a minha configuração anterior da NGINX parecia...
server {
listen 80;
location / {
proxy_pass http://localhost:8080;
}
}
Parece que agora...
# 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;
}
}
...Eu segui o exemplo aqui e o link que ele fornece Aqui e eu sou cético que tudo acima é necessário (Eu sou um minimalista). Sempre que executar sudo nginx -t
, Continuo a obter erros em torno do ssl_ certificate e do ssl_ certificate_key que não estão a ser indicados. Eu não posso descobrir como baixar os arquivos necessários de CloudFlare e do que eu entende, acho que não devia precisar.
Se eu tentar reutilizar o certificado de origem CloudFlare como tanto o ssl_ certificate como o ssl_ certificate_key, eu fico com o erro 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)
1 answers
O problema parece que colocou a sua chave privada SSL no atributo {[[0]} e não colocou o seu verdadeiro certificado SSL na sua configuração. A sua configuração de SSL Nginx deverá conter as seguintes linhas em alternativa:
ssl_certificate /path/to/your_certificate.pem;
ssl_certificate_key /path/to/your_key.key;
Certifique-se que o certificado SSL corresponde ao.Arquivo PEM com o conteúdo correto, e o arquivo Chave do certificado contém o .Ficheiro da chave com o conteúdo correcto muito.
Para gerar um certificado com a AC de origem, navegue até à secção Crypto do painel Cloudfalre. A partir daí, clique no botão Criar Certificado na seção Certificados de origem. Assim que completar os passos do assistente, irá ver uma janela que lhe permite transferir tanto o ficheiro do certificado como o ficheiro da chave. Certifique-se de colocá-los nos arquivos corretos e instalá-los em seu servidor web.
Além disso leitura: