Implementando servidor de aplicações PHP utilizando Zend Framework

Esse mega artigo aborda todos os conceitos técnicos e práticos para a implementação de um servidor de aplicações PHP utilizando framework Zend, incluindo detecção de intrusão e entre outros conceitos. Vale a pena conferir.

[ Hits: 133.975 ]

Por: José Cleydson Ferreira da Silva em 27/04/2010


Suporte a conexões seguras com SSL



O serviço de conexão segura SSL (Security Socket Layers) no Apache é responsável pelo módulo mod_ssl, que possibilita um nível de segurança em transações, muito comum em sistemas que utilizam a web. Solicitações seguras são realizadas pelo protocolo HTTPS (HyperText Transfer Protocol Secure) que utiliza a porta 443.

Inicialmente, é necessário gerar o certificado e enviar para análise junto à Autoridade Certificadora, sendo ele aprovado, o navegador aceitará a conexão como segura. Para gerar chaves privadas, geralmente se usa o openssl em ambientes Unix.

O openSSL é o Software Livre e de Código Aberto mais popular que possui robustez e competitividade comercial. Sendo ele uma ferramenta de linha de comando para utilizar as funções de criptografia, pode-se usá-lo para a criação de chaves privadas e públicas, operações de criptografia de chave pública, criações de certificado X,509, CSRs, CRLs, criptografia e descriptografia, dentre outros.

Para tornar um sistema propriamente seguro é necessário gerar dois arquivos: Um contendo as chaves privadas (arquivo.key) e outro com pedido de assinatura de certificado (arquivo.csr), os comandos abaixo se encarregam de fazer esse trabalho.

Comandos para gerar chave privada e pedido de certificado.

Gerar arquivo contendo a chave:

openssl genrsa -des3 -out www.gnu-lia.org.key 1024
...
Generating RSA private key, 1024 bit long modulus
........++++++
.....................................++++++
e is 65537 (0x10001)
Enter pass phrase for www.gnu-lia.org.key: Digite uma frase secreta

Comando para gerar pedido de certificado:

openssl req -new -key www.gnu-lia.org.key -out www.gnu-lia.org.csr
...
Enter pass phrase for www.gnu-lia.org.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:BR
State or Province Name (full name) [Some-State]:Minas Gerais
Locality Name (eg, city) []:Minas Gerais
Organization Name (eg, company) [Internet Widgits Pty Ltd]:gnu-lia ltda
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:www.gnu-lia.org
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:uma senha
An optional company name []:.

A configuração do certificado no portal ou sistema web, pode ser elaborada no arquivo .htaccess, as principais diretivas de configuração são: SSLEngine, SSLCertificateFile e SSLCertificateKeyFile. Para validar o uso dessas diretivas é preciso habilitar o módulo mod_ssl.

a2enmod ssl && sudo /etc/init.d/apache2 force-reload

A diretiva SSLEngine habilita o uso do SSL. É importante lembrar que, por padrão, essa diretiva vem desabilitada. A opção SSLCertificateFile indica onde está o certificado assinado pela unidade certificadora, geralmente podendo armazená-lo no diretório onde está a aplicação web, em um diretório separado. Por fim, a opção SSLCertificateKeyFileque indica onde está a chave privada como mostra o exemplo abaixo.

<VirtualHost *:443>
     ServerName     cleysinhonv.gnu-lia.org
     ServerAlias      cleysinhonv.gnu-lia.org cleysinhonv  
     ServerAdmin    [email protected]
     DocumentRoot "/home/usuario/public_html"
     ErrorLog          /var/log/apache2/gnu-lia-error.log
     logFormat        "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" gnu-lia
     CustomLog      /var/log/apache2/gnu-lia-error.log
     RedirectMatch ^/$ www.gnu-lia.org/cleysinhonv
     SSLEngine       on
     SSLCertificateFile /home/usuario/sistemas/ssl/www.gnu-lia.org.csr
     SSLCertificateKeyFile /home/usuario/sistemas/ssl/www.gnu-lia.org.key
</VirtualHost>

Página anterior     Próxima página

Páginas do artigo
   1. Índice
   2. Introdução
   3. Sobre Zend Framework
   4. Particionamento
   5. Instalação do Servidor Web
   6. Habilitando o módulo mod_rewrite
   7. Habilitando o módulo mod_userdir
   8. Instalando Zend Framework
   9. Testando Zend Framework
   10. Padrões de diretórios para aplicações do Zend Framework
   11. Script para a criar a estrutura de diretório do MVC
   12. Configurando restrição de acesso
   13. Configurando Virtual Host
   14. Padronizando o formato dos registros em arquivos de log
   15. Suporte a conexões seguras com SSL
   16. Configurando exibição de erros
   17. Liberando acesso a ftp
   18. Rotinas de backup
   19. Ferramenta para detecção de intrusão (opcional)
   20. Acelerando o PHP (opcional)
   21. Considerações finais
Outros artigos deste autor

Como migrar banco de dados MySQL para PostgreSQL

Gerência de projetos com Redmine

Bioinformática - Análise Filogenética com Clustalx

Bioinformática - PhyML: alinhamento de sequências nucleotídicas em ambiente paralelo

Implementando servidor web Java com Tomcat no Linux

Leitura recomendada

Instalação do Docker no CentOS 7

Gerenciamento de Lan House com Main Control System

Bandwidthd + Postgre

Instalando e configurando o OpenSolaris 2008.5

Wine, Steam e programas do Windows, no Linux

  
Comentários
[1] Comentário enviado por viniciusgnu em 27/04/2010 - 08:47h

Meu velho, como sempre está de parabéns! "Keep up with the good work"!
Abraço

[2] Comentário enviado por cleysinhonv em 27/04/2010 - 08:50h

Valeu Vinicius!

Como sempre "procurar" / "tentar" / "me esforçar" em publicar artigos completos que ajudem a comunidade como um todo!

[3] Comentário enviado por uberalles em 27/04/2010 - 11:00h

Que "putza" app server bacana!! Muito bem detalhado seu artigo e passo a passo.

[4] Comentário enviado por cleysinhonv em 27/04/2010 - 11:33h

Olá Andre Miguel,

Bacana né! Procurei Explicar de forma clara e detalhar o máximo possível! Acredito que este material irá ajudar muitas empresas e pessoas que queiram implemetar esse tipo de solução!

Um abraço!

[5] Comentário enviado por valterrezendeeng em 27/04/2010 - 13:04h

Muito Bom o Artigo
Bem Feito e completo

Parabéns !!!!


Abraço

[6] Comentário enviado por razgriz em 27/04/2010 - 13:10h

Belo artigo Kurumin, continue assim!

[7] Comentário enviado por cleysinhonv em 27/04/2010 - 13:16h

Olá valter! Olá Prof. RazGriz!

Obrigado! Fico grato e com sentimento de dever cumprido. Espero que esse artigo possa ajuda-los de alguma forma, utilize-o e indique-o a quem precisar!

Um abraço!


Contribuir com comentário