Primeiro crie uma aplicação para ser servida, segue aqui um exemplo em NodeJS.
- Start o projeto com o seguinte comando:
yarn init -y
- Instale a dependência:
yarn add express
- Crie o arquivo
index.js
e cole o seguinte código:
const express = require('express');
const app = express();
const port = 3333;
// Rota para lidar com a requisição GET na raiz
app.get('/', (req, res) => {
res.send('<br> <h3>Hello World!<\h3>');
});
// Iniciar o servidor
app.listen(port, () => {
console.log(`Servidor rodando em http://localhost:${port}`);
});
- Agora instala a dependência pm2 que executar a aplicação em segundo plano:
sudo yarn global add pm2
- Disponibilize a aplicação em segundo plano com:
pm2 start index.js --name test
- Execute os seguintes comandos para atualizar a lista de pacotes e instalar o Nginx:
sudo apt-get update & sudo apt-get install nginx
-
Após a instalação ser concluída, o Nginx estará em execução e configurado para iniciar automaticamente no boot do sistema.
- Iniciar o serviço Nginx:
sudo systemctl start nginx
- Parar o serviço Nginx:
sudo systemctl stop nginx
- Reiniciar o serviço Nginx:
sudo systemctl restart nginx
-
Abra o arquivo de configuração do Nginx usando um editor de texto.
sudo vi /etc/nginx/sites-available/default
- Cole o seguinte código:
server {
listen 80 default_server;
listen [::]:80 default_server;
client_max_body_size 100M;
location / {
proxy_pass_request_headers on;
proxy_pass http://$endereco_backend:$port;
}
}
- Reinicie o serviço Nginx para que as alterações entrem em vigor:
sudo systemctl restart nginx
Agora, o Nginx está configurado como um proxy reverso. Todas as solicitações recebidas pelo Nginx serão encaminhadas para o servidor backend especificado na configuração.
- Instalando as dependencias
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo apt-get update
- Instalando o certbot
sudo apt-get install certbot
- Instalando pluing nginx
sudo apt-get install python3-certbot-nginx
- Execute o seguinte comando para obter o certificado SSL usando o Certbot:
sudo certbot certonly --nginx -d seudominio.com
-
O Certbot se comunicará com o Let's Encrypt para verificar a propriedade do domínio e emitir o certificado SSL. Após a conclusão bem-sucedida desse processo, o certificado será salvo em um diretório específico no seu servidor.
-
O Certbot também configurará automaticamente o arquivo de configuração do Nginx para usar o certificado SSL recém-obtido. Se ele não modificar o arquivo do nginx, cole o seguinte código no
/etc/nginx/sites-available/default
server {
listen 80 default_server;
listen [::]:80 default_server;
client_max_body_size 100M;
location / {
proxy_pass_request_headers on;
proxy_pass http://endereco_backend:port;
}
}
server {
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
server_name seudominio.com;
location / {
proxy_pass_request_headers on;
proxy_pass http://$endereco_backend:$port;
}
# managed by Certbot --------
ssl_certificate /etc/letsencrypt/live/seudominio.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/seudominio.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
server {
if ($host = seudominio.com) {
return 301 https://$host$request_uri;
}
listen 80;
listen [::]:80;
server_name seudominio.com;
return 404;
}
- Reinicie o Nginx para que as alterações de configuração entrem em vigor:
sudo systemctl restart nginx
| Pronto, agora o dominio estará certificado.