Configuração inicial necessária desde a instalação do Apache no CentOS até ao arranque.
Data de Publicação:8 de Dezembro de 2020.
INFOMARTION > Configuração inicial necessária desde a instalação do Apache no CentOS até ao arranque.
Visão geral.
Este é o procedimento de configuração inicial necessário para instalar e iniciar o Apache no CentOS. A informação baseia-se no pressuposto de que o CentOS7 é utilizado.
As versões são as seguintes.
Versão CentOS | 7.6 (1810) |
---|---|
Versão Apache | 2.4.6 |
Tabela de Conteúdos
- instalar
- configuração básica
- 2-1. Criação de pasta de saída de ficheiros de registo
- 2-2. Definição do domínio
- 2-3. Activação de módulos e ficheiros de configuração SSL
- 2-4. Alterar o caminho de saída do registo
- 2-5. Criação de certificados SSL
- 2-6. SSL (Secure Socket Layer) permanente
- 2-7. Confirmação da activação (acesso https).
- 2-8. Configuração de arranque automático
- resumo
1. instalar
Esta secção descreve a configuração do Apache desde a instalação até ao arranque.
1-1. Instalar o Apache
Executar a instalação do Apache através do comando yum. Efectuar o trabalho como utilizador root.
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install httpd
1-2. Verificação do arranque (acesso http)
Verificar brevemente se está acessível. A instalação do Apache (httpd) com o comando yum permite o comando apachectl. Use isto para iniciar o Apache.
[root@hostname ~]# apachectl start
[root@hostname ~]# apachectl status
* httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2020-12-06 17:08:12 JST; 1s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 1303 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
|-1303 /usr/sbin/httpd -DFOREGROUND
|-1304 /usr/sbin/httpd -DFOREGROUND
|-1305 /usr/sbin/httpd -DFOREGROUND
|-1306 /usr/sbin/httpd -DFOREGROUND
|-1307 /usr/sbin/httpd -DFOREGROUND
`-1308 /usr/sbin/httpd -DFOREGROUND
Dec 06 17:08:11 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Dec 06 17:08:12 localhost.localdomain httpd[1303]: AH00558: httpd: Could not reliably determ...ge
Dec 06 17:08:12 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
Se 'Active: active (running)' for devolvido como resultado da execução do comando 'apachectl status', o sistema começou com sucesso.
Depois aceda ao Apache a partir do seu navegador. Definir permissões http como firewall (ou iptables para CentOS6 e anteriores) só permite o acesso ssh por defeito no CentOS7. Gostaria também de colocar um conjunto de permissões colectivas para https. Adicionar também a opção 'permanente' para tornar a configuração permanente.
[root@hostname ~]# firewall-cmd --permanent --add-service=http
[root@hostname ~]# firewall-cmd --permanent --add-service=https
[root@hostname ~]# firewall-cmd --reload
[root@hostname ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client http https ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Não há problema se 'http' e 'https' tiverem sido acrescentados a 'serviços'. Acesso via browser. No meu caso, o endereço IP do servidor é 192.168.50.10, pelo que acedo a "http://192.168.50.10". Não há problema se aparecer a seguinte página
Uma vez que o sistema tenha sido iniciado com sucesso, pare-o.
[root@hostname ~]# apachectl stop
2. configuração básica
2-1. Criação de pasta de saída de ficheiros de registo
Para gerir o registo sob /var/log/, criar um directório httpd sob /var/log/ como uma pasta para registos Apache.
As permissões (permissões) devem ser 755. Esta configuração permite ao Apache escrever, mas outros utilizadores só podem ler. Se outros utilizadores puderem escrever, os registos podem ser adulterados.
mkdir /var/log/httpd' não precisa de ser executado se já tiver sido criado um directório com o mesmo nome.
[root@hostname ~]# mkdir /var/log/httpd
[root@hostname ~]# chmod 755 /var/log/httpd
Utilize este último procedimento para alterar as definições de destino de saída de registo Apache.
Este procedimento é apenas um procedimento para a criação de uma pasta para os registos a serem armazenados.
2-2. Definição do domínio
Alterar as definições de domínio listadas em httpd.conf. A configuração do Apache é basicamente centralizada em httpd.conf, por isso, se quiser alterar a configuração, modifique o httpd.conf. Os domínios não precisam de ser criados se o ambiente for local (não aberto ao público na Internet).
[root@hostname ~]# vi /etc/httpd/conf/httpd.conf
# Descomentar e activar a configuração ServerName. O nome de domínio é definido de acordo com o ambiente.
#ServerName www.example.com:80
ServerName domainname:80
2-3. Activação de módulos e ficheiros de configuração SSL
Habilitar SSL para permitir o acesso sobre https. As definições SSL estão relacionadas com SEO, e http não é uma boa ideia por razões de segurança em primeiro lugar, por isso, a menos que tenha de usar http, use https.
Instalar o módulo ssl com yum.
[root@hostname ~]# yum -y install mod_ssl
A instalação com yum activa automaticamente o módulo ssl, pelo que só precisa de o instalar. É também criado automaticamente um ficheiro de configuração. (/etc/httpd/conf.d/ssl.conf é criado automaticamente).
2-4. Alterar o caminho de saída do registo
Altere o destino de saída do registo Apache para a pasta de saída do ficheiro de registo que acabou de criar. Alterar apenas o ficheiro de configuração ssl, uma vez que será criado num passo posterior para ser acedido apenas via ssl (https).
[root@hostname ~]# vi /etc/httpd/conf.d/ssl.conf
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
~abridgement~
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
ErrorLog /var/log/httpd/ssl_error_log
TransferLog /var/log/httpd/ssl_access_log
~abridgement~
CustomLog /var/log/httpd/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
A modificação acima muda o destino de saída do registo para "/var/log/httpd".
%t, %h', etc., esta é a configuração de formatação de registo. Segue-se uma lista de formatos que podem ser utilizados frequentemente como referência.
【参考】
・%T:Tempo necessário para processar o pedido (segundos)
・%h:Nome do anfitrião ou endereço IP do cliente. Só tentar resolver hostnameLookups se HostnameLookups estiver definido para On
・%r:Primeira linha do pedido
・%b:Bytes da resposta (excluindo os cabeçalhos HTTP). formato CLF, ou seja - se nenhum dos bytes for enviado
・%D:Tempo necessário para processar o pedido (microssegundos)
・%>s:Estado HTTP
2-5. Criação de certificados SSL
Procedimento para a criação de certificados. A auto-certificação é multa para operações privadas. Para servidores publicamente disponíveis, a auto-certificação deve ser desencorajada.
Não há diferença na segurança entre certificados normais e auto-certificados. Esta pode ser a diferença entre um certificado que pode ser julgado fiável por um terceiro e um que não pode. (Com auto-certificação, a barra URL fica vermelha). Assim, para servidores disponíveis ao público (servidores que são vistos por terceiros), emitir um certificado normal.
As configurações padrão do certificado para Apache são "/etc/pki/tls/certs/localhost.crt" e "/etc/pki/tls/private/localhost.key".
As definições podem ser encontradas em "SSLCertificateFile" e "SSLCertificateKeyFile" em "/etc/httpd/conf.d/ssl.conf".
【Para auto-certificação】
Para criar um auto-certificado, executar o seguinte comando. Funciona como utilizador root.
Executando 'openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.crt' pedir-lhe-á uma resposta várias vezes, todas com Enter, sem problemas. Isto será informação sobre quem está a emitir o certificado (por exemplo, em que país vivem e qual é o seu endereço electrónico). Se estiver a emitir um certificado normal, introduza as informações correctas e configure-o.
[root@hostname ~]# openssl genrsa > /etc/pki/tls/private/localhost.key
[root@hostname ~]# openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.csr
[root@hostname ~]# openssl x509 -req -signkey /etc/pki/tls/private/localhost.key < /etc/pki/tls/certs/localhost.csr > /etc/pki/tls/certs/localhost.crt
【Para certificados normais】
Para criar um certificado normal, executar o seguinte comando. Funciona como utilizador root.
[root@hostname ~]# openssl genrsa -out /etc/pki/tls/private/localhost.key 2048
[root@hostname ~]# openssl req -new -key /etc/pki/tls/private/localhost.key -out /etc/pki/tls/certs/localhost.csr
Para certificados regulares, isto não é suficiente para completar o processo. O trabalho envolve a entrega do 'server.csr' criado à Autoridade Certificadora para que seja emitido um certificado de servidor e a instalação do certificado de servidor que tenha sido emitido.
2-6. SSL (Secure Socket Layer) permanente
Não é boa segurança se o acesso for feito através de http, por isso adicione uma configuração para redireccionar para https se o acesso for feito através de http.
É possível proibir o acesso via http, mas de um ponto de vista de usabilidade, recomenda-se a criação de um redireccionamento. Executar as seguintes tarefas como utilizador root.
[root@hostname ~]# vi /etc/httpd/conf/httpd.conf
Acrescentar o seguinte no final.
<IfModule rewrite_module>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
É possível alterar esta configuração para que os acessos que entram em http sejam tratados em https.
Afirma-se que esta configuração não funciona se vier por https. (RewriteCond %{HTTPS} off)
Não se esqueça de mencionar que sem esta configuração, os acessos https também serão redireccionados, resultando num loop infinito.
2-7. Confirmação da activação (acesso https).
Agora que as várias configurações foram concluídas, verifique se o site pode ser acedido através de https. Comece primeiro.
[root@hostname ~]# apachectl start
Acesso via browser. O mesmo que para o acesso http, mas no meu caso o endereço IP do servidor é 192.168.50.10, por isso acedo a "http://192.168.50.10".
O URL é alterado de "http://192.168.50.10" para "https://192.168.50.10" porque a configuração do redireccionamento http está incluída.
Agora que foi iniciado com sucesso, parar o Apache.
[root@hostname ~]# apachectl stop
2-8. Configuração de arranque automático
Finalmente, embora não seja obrigatório, é difícil iniciar o Apache de cada vez que o servidor é reiniciado, pelo que é posta em prática uma configuração para que o Apache arranque automaticamente quando o servidor é iniciado. Também se regista para o comando systemctl. Note que este procedimento é para o CentOS7, por isso, se estiver a utilizar algo que não o CentOS7, terá de usar o comando Service para lidar com isto.
Criar um ficheiro 'apache.service' e descrever as configurações necessárias.
[root@hostname ~]# touch /etc/systemd/system/apache.service
[root@hostname ~]# vi /etc/systemd/system/apache.service
É fornecida a seguinte informação.
[Unit]
#Descrição.
Description=Apache
#Controlo pré e pós-execução.
#Before=xxx.service
#After=xxx.service
[Service]
#Designação do utilizador e do grupo
User=root
Group=root
#Uma vez activado, definir o estado para Activado.
Type=oneshot
RemainAfterExit=yes
#Iniciar, parar e recarregar.
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl restart
[Install]
#Configurações equivalentes ao nível de execução 3.
WantedBy=multi-user.target
Quando tiver terminado de o descrever, registe-o com o comando systemctl.
[root@hostname ~]# systemctl enable apache
[root@hostname ~]# systemctl is-enabled apache
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep apache
apache.service enabled
[root@hostname ~]# systemctl daemon-reload
3. resumo
Descrevemos a configuração inicial necessária quando o Apache é instalado.
O Apache funciona basicamente até certo ponto com as configurações padrão, mas se realmente o personalizar, consulte por favor as configurações de destino de saída de registo e as configurações SSL, que deverá alterar ao operar o sistema.
Obrigado por ter observado até ao fim.
■INFORMATION
Por favor clique aqui para ir para a página superior de INFORMAÇÃO.
■PROFILE
Por favor clique aqui para um perfil.
■Detalhes de contacto.