B E L M I T E C

Loading

CURSO RENDA EXTRA COM PHP + CODEIGNITER 4 #03 - CRIE UMA PLATAFORMA EAD - DOMÍNIOS LOCAIS COM NGINX + OPENSSL

Olá, Saraiva aqui!

Para avançar com o nosso ambiente de desenvolvimento, vamos entender como criar vários domínios locais usando o servidor NGINX, e claro, vamos criar o dominio local que usaremos para acessar nossa plataforma EAD.

Para isso, basta seguir os passos deste guia abaixo onde explico como criar um novo dominio local com NGINX e um certificado ssl para esse domínio usando o OpenSSL.

Seguindo este método você poderá criar quantos domínios precisar, em seu servidor local. Bastando subistituir, nos comandos, o domínio atual pelo novo que estará criando.

Em nosso curso usaremos o domínio abaixo para ser o usado em nosso site local para a plataforma ead que criaremos:

https://plataformaead.local

Nota: Se você tentar acessar esse domínio publicamente, seu navegador não encontrará pois ele só existirá em meu servidor local. Caso você decida criar igual a mim, apenas vai existir em seu servidor local também.


Abra o terminlal e siga os passos abaixo para criar seu novo dominio no seu servidor:

Passo 1 - Cadastre seu novo domínio no servidor localhost com o comando abaixo:

sudo nano /etc/hosts

Após clicar em Enter, seu terminal mostrará uma nova tela, prossiga conforme o exemplo abaixo, copie e cole logo abaixo do ultimo registro, lembrando de alterar para o dominio escolhido por você, caso não estejas usando o mesmo que eu.

127.0.0.1 plataformaead.local

Isso fará com que o servidor reconheça seu domínio local. Para salvar, use as teclas CTRL + X, depois clique em S e ENTER em seguida para confirmar e salvar. 

Passo 2 - Criando diretório para o domínio:

O comando abaixo cria uma pasta/diretório no caminho padrão do Ubuntu para servir aquivos web, /var/www/. Lembre-se de modificar o comando de acordo com o domínio escolhido por você.

sudo mkdir -p /var/www/plataformaead.local/html

Após rodar esse comando, o diretório onde os arquivos da nossa plataforma serão colocados está pronto. Agora vamos criar um bloco do servidor NGINX para que ele possa servir nosso site.

Passo 3 - Aplicando acesso ao diretório criado para o usuário atual:

Use os comandos abaixo para garantir que o seu usuário atual terá acesso irrestrito ao diretório criado. 

sudo chown -R $USER:$USER /var/www/plataformaead.local/html

Com o comando abaixo você dá permissões necessárias de escrita e leitura aos arquivos e pastas no diretório criado:

sudo chmod -R 755 /var/www/plataformaead.local/html

Feito isso, vamos agora trabalhar com o NGINX.


Passo 4 - Criando bloco do servidor NGINX (Lê-se Engine-X):

Como esta é a primeira vez que criamos um bloco de servidor, fique atento às configurações a seguir. Use a sequência de comandos abaixo para concluir esta etapa, lembrando de fazer as alterações necessárias conforme o seu caso:

Crie o bloco de servidor com este comando:

sudo nano /etc/nginx/sites-available/plataformaead.local

Use a estrutura de códigos abaixo para configurar o arquivo criado. Copie e cole, ctrl +c e ctrl + shift + v:


server { 

	listen 443 ssl;
	server_name plataformaead.local; 
	root /var/www/plataformaead.local/html;
	
	index index.html index.php;
    
    	client_max_body_size 2048M;
 
	ssl_certificate /etc/nginx/ssl/plataformaead.local/server.crt;
	ssl_certificate_key /etc/nginx/ssl/plataformaead.local/server.key;
	
    
	# set expiration of assets to MAX for caching

	location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
		expires max;
		log_not_found off;
	}

	location / {
		#Check if a file or directory index file exists, else route it to index.php.
		try_files $uri $uri/ /index.php;
	}

	location /backups {
		deny all;
		return 404;
	}
    	
    	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
		fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
	}

	location ~ /\.ht {
		deny all;
	}

}


Após fazer as alterações necesárias, salve o arquivo usando CTRL + X, em seguida S e depois ENTER para salvar e sair da tela de edição.

Passo 5 - Instalando certificado Auto assinado com OpenSSl e NGINX para o domínio criado:

Note que no código acima, temos a diretiva: listen 443 ssl; isso siginifica que o NGINX tentará servir nosso domínio em uma conexão segura usando certificado ssl. Porém, anda não configuramos isso. Então se tentassemos acessar nosso domínio agora, não iria funcionar.

Primeiro vamos verificar a versão atual do OpenSSL em nosso sistema. Use comando abaixo:

sudo openssl version

NOTA: Se você receber um erro ao rodar o comando acima, significa que o OpenSSL não está instalado em seu sistema. Para corrigir isso, basta seguir este guia que preparei para te ajudar a instalar o OpenSSL no ubuntu. Instale o OpenSSL conforme o guia deste link e então retorne para prosseguir com esta aula.

Se você não recebeu um erro, e sim a sua versão atual do OpenSSL, então vamos adiante!

Agora vamos configurar nosso certificado ssl com os comandos a seguir.

Primeiro crie o diretório onde o certificado será gerado, lembre de altarear para o seu dominio local:

sudo mkdir -p /etc/nginx/ssl/plataformaead.local

Em seguida, acesse o diretório criado com o comando abaixo:

cd /etc/nginx/ssl/plataformaead.local

Agora, desde que você esteja acessando o diretório criado para conter o certificado, vamos gerar o certificado auto assinado com o comando abaixo. Você deverá informar uma senha neste passo (pass phrase). Informe uma senha fácil. No meu caso, vou informar a senha 12345:

sudo openssl genrsa -des3 -out server.key 2048

No próximo comando você deverá preencher algumas informações necessárias, fique atendo ao seguinte campo: Common Name (e.g. server FQDN or YOUR name) []:plataformaead.local - informe neste campo o seu domínio em questão.

Outra informação importante: Ao final deste passo, o sistema irá solcitar duas informações. A primeira é uma senha, ESTA SENHA DEVE SER APAGADO A SEGUIR E ELA DEVE SER DIFERENTE DA SENHA CRIADA NO PASSO ANTERIOR então insira uma senha fraca. No meu caso vou colocar 7777. Na segunda informação, insira qualquer coisa.

Comando:

sudo openssl req -new -key server.key -out server.csr

Nós iremos apagar a senha gerada neste comando em instantes. Se você não apagar esta senha gerada neste comando, toda vez que reiniciar o servidor NGINX terás que usar essa senha, e você não vai querer isso!

Agora, vamos gerar mais um arquivo necessário para o funcionamento do certificado com o comando abaixo:

sudo cp server.key server.key.org

Feito isso, vamos apagar a senha fraca gerada ao criarmos o CSR. Fique atento pois você vai precisar informar a senha principal gerada no primeito passo onde criamos o certificado, no meu caso é a senha 12345.

sudo openssl rsa -in server.key.org -out server.key


Feito isso, agora a
ssine o Certificado e teremos concluído:

sudo openssl x509 -req -days 1825 -in server.csr -signkey server.key -out server.crt

O comando acima assina o certificado com validade para 5 anos, definidos na diretiva; -days 1825. Fique a vontade para colocar ali, 365 dias para um ano ou quantos dias você quiser.

Nosso certificado agora está gerado e pronto para uso. Vamos concluir!


Passo 6 - Testando as configurações e ativando o domínio local

Use o comando abaixo para testar se todas as configurações do servidor NGINX estão corretas:

sudo nginx -t

Se sua saída for igual à descrita abaixo, você configurou tudo corretamente. Então siga para o próximo comando:


Habilite o domínio criado usando o comando abaixo:

sudo ln -s /etc/nginx/sites-available/plataformaead.local /etc/nginx/sites-enabled/

Agora reinicie o servidor NGINX para que seu domínio passe a ser servido. Use o comando abaixo para reiniciar:

sudo systemctl restart nginx


Ainda não temos nenhum arquivo no diretório deste dominio. Então vamos criar um simples index.html e acessar o dominio para verificarmos se está tudo funcionando:

Siga as etapas no código abaixo:

// 1 - Use esse comando em seu terminal


sudo nano /var/www/plataformaead.local/html/index.html


// 2 - copie e cole este trecho de código html

<h1>Bem vindo ao domínio para:</h1>
<h2>plataformaead.local</h2>

// Se preferir, use este código abaixo:

<h1>Olá mundo!</h1>

// Ou este código abaixo:

<h1>Hello World!</h1>


Quando acabr use CTRL + X depois S e ENTER para salvar o arqivo.
Agora bastar acessar em seu navegador local o seu dominio:

https://plataformaead.local

Note que o navegador vai dizer que o domini não é seguro, isso já era eperado pois nosso certificado não é autenticado por nenuma autoridade certificadora. Isso não nos atrapalha e nem interessa aqui, pois o objetivo é termos um certificado ssl local para fins de testes e nossa aplicação.

Então clique em AVANÇADO e prosiga para cessar o site;

Parabéns! Você acaba de dar mais um grande passo no universo do NGINX. A boa notícia é que sempre que você precisar de um novo dominio local, ou bloco de servidor enfim, basta repetir esses passos com seu novo domínio e tudo vai funcionar bem!

🔥 Deixo aqui uma ótima dica pra você ir além do PHP e se tornar um
Verdadeiro Profissional Full-Stack. Se destaque no mercado e seja reconhecido. 🥇

🔥 Você também pode gostar do universo dos games, esta dica vai te ajudar a criar seus próprios jogos usando as melhores tecnologias do mercado.

Em nossa proxima aula, vamos instalar o phpMyAdmin para gerenciar nossos bancos de dados.

Bons estudos e vamos adiante!




Você achou esse artigo útil?


Artigos relacionados