Skip to content

Commit 53e0304

Browse files
Renato Diniz MarigoRenato Diniz Marigo
authored andcommitted
Atualizações da documentação
1 parent 0002138 commit 53e0304

4 files changed

Lines changed: 214 additions & 2 deletions

File tree

Imagens/Imagem01.png

611 KB
Loading

Imagens/Imagem02.png

38.6 KB
Loading

Imagens/Imagem03.png

95.8 KB
Loading

README.md

Lines changed: 214 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,214 @@
1-
# apache-https
2-
Descrevendo a instalação de um Apache no Centos 7 Minimal, com configuração adicional de Certificado Digital HTTPS
1+
# Projeto Apache 2 em Centos 7 + HTTPS (apache-https)
2+
3+
### Descrevendo a instalação de um Apache no Centos 7 Minimal, com configuração adicional de Certificado Digital HTTPS
4+
5+
## Objetivo
6+
7+
Instruir como fazer a instalação do Apache no Centos 7 e depois configurar um certificado digital fazendo com que o Virtual Host ao acessar pelo porta HTTP seja redirecionado para HTTPS.
8+
9+
## Instalação do Sistema Operacional
10+
11+
Instalamos o Centos 7 versão minimal.
12+
13+
## Instalação e Configuração do Apache
14+
15+
Instale o Apache com o seguinte comando:
16+
17+
```
18+
sudo yum install httpd
19+
```
20+
21+
Faça um backup do arquivo de configuração original:
22+
23+
```
24+
cp /etc/httpd/conf/httpd.conf ~/httpd.conf.backup
25+
```
26+
27+
Adicione o Apache na inicialização do Sistema Operacional e Inicie o Serviço:
28+
29+
```
30+
systemctl enable httpd
31+
systemctl start httpd
32+
```
33+
34+
Com isso já consegue acessar a página principal do Apache:
35+
36+
[http://<IP_SERVIDOR>](http://127.0.0.1)
37+
38+
39+
![Imagem 01](https://github.com/renizgo/apache-https/Imagens/Imagem01)
40+
41+
## Configurando Virtual Host
42+
43+
Vamos criar um simples arquivo `.html`, que será o nosso site.
44+
45+
Virtual Hosts é uma configuração simples em muitos servidores para que um mesmo servidor possua mais do que um site web.
46+
47+
Crie o diretório da nossa aplicação:
48+
49+
```
50+
mkdir /var/www/html/server01
51+
```
52+
53+
Crie um arquivo com o seguinte conteúdo:
54+
55+
``` vim /var/www/html/serve01/index.html```
56+
57+
```
58+
<!DOCTYPE html>
59+
<html>
60+
<body>
61+
62+
<h1>Server 01</h1>
63+
64+
<p>Página do Servidor 01</p>
65+
66+
</body>
67+
</html>
68+
```
69+
70+
No arquivo de configuração do Apache por padrão ele tem um diretório aonde pode criar as declarações de Virtual Hosts:
71+
72+
`/etc/httpd/conf/httpd.conf`
73+
74+
```
75+
# Load config files in the "/etc/httpd/conf.d" directory, if any.
76+
IncludeOptional conf.d/*.conf
77+
```
78+
79+
Portanto crie o seguinte arquivo, com o conteúdo:
80+
81+
```vi /etc/httpd/conf.d/server01.conf```
82+
83+
```
84+
<VirtualHost *:80>
85+
ServerName server01.com.br
86+
ServerAlias www.server01.com.br
87+
DocumentRoot "/var/www/html/server01/"
88+
<Directory "/var/www/html/server01/">
89+
Options FollowSymLinks
90+
AllowOverride FileInfo
91+
Allow from all
92+
DirectoryIndex index.php index.html index.htm
93+
Satisfy all
94+
</Directory>
95+
</virtualHost>
96+
```
97+
98+
Teste a configuração do Apache:
99+
100+
`apachectl -t`
101+
102+
Reinicie o serviço:
103+
104+
`systemctl restart httpd`
105+
106+
Acesse a página Web e verifique o conteúdo:
107+
108+
![Imagem02](https://github.com/renizgo/apache-https/Imagens/Imagem02)
109+
110+
## Configurando o uso de certificado SSL no Apache
111+
112+
Instale o módulo SSL, caso não esteja instalado:
113+
114+
`# yum install mod_ssl`
115+
116+
#### Gerando o certificado Auto Assinado (Self Signed Certificate).
117+
118+
Entre no diretório de certificados:
119+
``` cd /etc/ssl/certs ```
120+
121+
Gere o certificado com o seguinte comando:
122+
123+
`openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server01.key -out server01.crt``
124+
125+
![Imagem03](https://github.com/renizgo/apache-https/Imagens/Imagem03)
126+
127+
Configure o virtual host para acesso HTTPS na porta 443, adicionando o conteúdo ao arquivo já criado nos passos anteriores.
128+
129+
```vi /etc/httpd/conf.d/server01.conf```
130+
131+
```
132+
NameVirtualHost *:443
133+
<VirtualHost *:443>
134+
SSLEngine On
135+
SSLCertificateFile /etc/ssl/certs/server01.crt
136+
SSLCertificateKeyFile /etc/ssl/certs/server01.key
137+
ServerName server01.com.br
138+
DocumentRoot "/var/www/html/server01/"
139+
<Directory "/var/www/html/server01/">
140+
Options FollowSymLinks
141+
AllowOverride FileInfo
142+
Allow from all
143+
DirectoryIndex index.html index.htm
144+
Satisfy all
145+
</Directory>
146+
</VirtualHost>
147+
```
148+
149+
Com isso temos a configuração dos dois modos, podemos acessar a página via HTTP ou HTTPS.
150+
151+
## Redirecionando o acesso HTTP para HTTPS
152+
153+
Agora vamos de certa forma obrigar o acesso via HTTPS, ou seja qualquer requisição HTTP será redirecionada para HTTPS.
154+
155+
Depois da configuração anterior funcionando temos que adicionar algumas poucas linhas para que esta
156+
funcionalidade aconteça.
157+
158+
No virtualhost HTTP:
159+
160+
```
161+
<VirtualHost *:80>
162+
...
163+
RewriteEngine On
164+
RewriteCond %{HTTPS} !on
165+
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
166+
```
167+
No virtualhost HTTPS:
168+
169+
```
170+
<VirtualHost *:443>
171+
...
172+
RewriteCond %{HTTP_HOST} ^server01.com.br$
173+
RewriteRule (.*) http://server01.com.br/$1 [R=301,L]
174+
```
175+
176+
O Arquivo `server01.conf`, completo ficará assim:
177+
178+
```
179+
NameVirtualHost *:443
180+
<VirtualHost *:443>
181+
SSLEngine On
182+
SSLCertificateFile /etc/ssl/certs/server01.crt
183+
SSLCertificateKeyFile /etc/ssl/certs/server01.key
184+
ServerName server01.com.br
185+
DocumentRoot "/var/www/html/server01/"
186+
<Directory "/var/www/html/server01/">
187+
Options FollowSymLinks
188+
AllowOverride FileInfo
189+
Allow from all
190+
DirectoryIndex index.html index.htm
191+
Satisfy all
192+
</Directory>
193+
RewriteCond %{HTTP_HOST} ^server01.com.br$
194+
RewriteRule (.*) http://server01.com.br/$1 [R=301,L]
195+
</VirtualHost>
196+
NameVirtualHost *:80
197+
<VirtualHost *:80>
198+
ServerName server01.com.br
199+
ServerAlias www.server01.com.br
200+
DocumentRoot "/var/www/html/server01/"
201+
<Directory "/var/www/html/server01/">
202+
Options FollowSymLinks
203+
AllowOverride FileInfo
204+
Allow from all
205+
DirectoryIndex index.html index.htm
206+
Satisfy all
207+
</Directory>
208+
RewriteEngine On
209+
RewriteCond %{HTTPS} !on
210+
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
211+
</virtualHost>
212+
```
213+
214+
Espero que consigam fazer as configurações necessárias

0 commit comments

Comments
 (0)