Configuração automática do Nginx com CrediConf
crediconf run [CrediConfFile] [nginxConfigFile] [nginxSiteConfigFile]
Este comando gerará um novo arquivo de configuração do nginx com base nas configurações do arquivo CrediConf.json
. Os arquivos nginxConfigFile
e nginxSiteConfigFile
serão alterados com as novas configurações.
Exemplo de uso
Para executar o comando, você precisaria passar os seguintes argumentos (opcionais):
-
CrediConfFile
: O caminho para o arquivoCrediConf.json
. -
nginxConfigFile
: O caminho para o arquivonginx.conf
. -
nginxSiteConfigFile
: O caminho para o arquivonginx-site.conf
.
Por exemplo, para executar o comando com os arquivos acima, você executaria o seguinte comando no diretório raiz do projeto que contém o CrediConf.json
e execurar o comando abaixo será alterado os arquivos nginx.conf
e nginx-site.conf
que estão no diretório padrão do nginx.
crediconf run
Caso haja a necessidade de alterar os arquivos de configuração do nginx, você pode passar os caminhos dos arquivos como argumentos para o comando, como no exemplo abaixo:
crediconf run /meu_caminho_ate_o_arquivo/CrediConf.json /meu_caminho_ate_o_arquivo/nginx.conf /meu_caminho_ate_o_arquivo/nginx-site.conf
Arquivo CrediConf.json
O arquivo CrediConf.json
é um arquivo JSON que contém as seguintes configurações:
-
headers
: Uma lista de cabeçalhos HTTP que serão adicionados a todas as respostas. -
application_root
: O diretório raiz da aplicação.
No exemplo abaixo o arquivo CrediConf.json
geraria um novo arquivo de configuração do nginx que define os cabeçalhos e o diretório raiz da aplicação:
{
"application_root": "/var/www/html", //diretório raiz da aplicação onde está o index.php
"headers": { //cabeçalhos HTTP que serão adicionados a todas as respostas do servidor
"X-Frame-Options": "SAMEORIGIN", //define quem pode incorporar a página em um frame ou iframe
"X-Content-Type-Options": "nosniff", //define que o navegador não deve permitir que a página seja interpretada como um tipo MIME diferente do declarado no cabeçalho Content-Type
"X-XSS-Protection": "1; mode=block", //ativa o filtro de XSS do navegador
"Referrer-Policy": "strict-origin-when-cross-origin", //define como o navegador deve enviar o cabeçalho Referer em solicitações de origem cruzada
"Strict-Transport-Security": "max-age=31536000; includeSubDomains; preload", //define que o navegador deve acessar o site somente por HTTPS
"Content-Security-Policy":{ //define uma lista de fontes de conteúdo válidas para o site
//define o conjunto de fontes válidas para cada tipo de recurso
"default-src":[ //define o conjunto de fontes válidas para todos os tipos de recursos que não possuem uma diretiva de política correspondente
"'self'"
],
"script-src":[ //define o conjunto de fontes válidas para scripts
"'self'",
"https://cdnjs.cloudflare.com",
"https://www.google.com",
"https://www.gstatic.com",
"https://www.googletagmanager.com",
"https://connect.facebook.net",
"https://googleads.g.doubleclick.net",
"https://www.googleadservices.com"
],
"style-src":[ //define o conjunto de fontes válidas para folhas de estilo
"'self'",
"'unsafe-inline'",
"https://fonts.googleapis.com"
],
"img-src":[ //define o conjunto de fontes válidas para imagens
"'self'",
"data:",
"https://www.google.com.br",
"https://googleads.g.doubleclick.net",
"https://www.google.com"
],
"font-src":[ //define o conjunto de fontes válidas para fontes
"'self'",
"https://fonts.googleapis.com",
"https://fonts.gstatic.com"
],
"connect-src":[ //define o conjunto de fontes válidas para conexões
"'self'",
"https://analytics.google.com"
],
"frame-src":[ //define o conjunto de fontes válidas para frames
"'self'",
"https://www.facebook.com",
"https://connect.facebook.net",
"https://www.google.com"
],
"media-src":[ //define o conjunto de fontes válidas para mídia
"'self'"
],
"object-src":[ //define o conjunto de fontes válidas para objetos
"'self'"
],
"child-src":[ //define o conjunto de fontes válidas para frames e workers
"'self'"
],
"frame-ancestors":[ //define o conjunto de fontes válidas para frames que podem incorporar a página
"'self'"
],
"sandbox":[ //define o conjunto de recursos que podem ser usados pelo documento
"allow-forms",
"allow-same-origin",
"allow-scripts",
"allow-popups",
"allow-modals",
"allow-top-navigation"
],
"form-action":[ //define o conjunto de fontes válidas para formulários
"'self'"
],
"worker-src":[ //define o conjunto de fontes válidas para workers
"'self'"
],
"manifest-src":[ //define o conjunto de fontes válidas para manifestos
"'self'"
],
"report-uri":"", //define o URL para o qual o navegador deve enviar relatórios de violação de política
"upgrade-insecure-requests": true, //define que o navegador deve atualizar automaticamente solicitações inseguras para HTTPS
"block-all-mixed-content": true //define que o navegador deve bloquear solicitações mistas
}
}
}