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: 146.126 ]

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 []:cleysinhonv@gmail.com

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    cleysinhonv@gmail.com
     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

Bioinformática - Instalação do SNAP workbench

Conheça tudo sobre os hardwares que compõem o seu computador com um simples comando

Acessando desktop remotamente com noMachine

Como migrar banco de dados MySQL para PostgreSQL

Implementando servidor web Java com Tomcat no Linux

Leitura recomendada

KimTu GNU/Linux - Uma distro brasileira

Stoq - Gestão Comercial - Instalação e configuração

É possível ganhar dinheiro com Software Livre?

Firefox, Thunderbird, pastas e integração Windows e Linux

Monitorando processos no Linux com o Htop

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts