sexta-feira, outubro 06, 2006

Instalando Certificados no APACHE

1) Como faço para efetuar a instalação da certificação digital de 128 Bits em um servidor Apache.

Os Certificados de 128 Bits emitidos pela CertiSign, tem o formato PKCS 7 , que é o certificado de servidor junto com o certificado intermediário.Antes de efetuar a instalação, você deve efetuar a separação das cadeias de certificação.
Para isso, você deverá digitar a seguinte linha de comando :

openssl pkcs7 -inform PEM -in .p7c -print_certs
(ex.: openssl pkcs7 -inform PEM -in CertiSign.p7c -print_certs)

Com isso, ele irá estornar na tela a cadeia separadamente. Certificado de servidor e o certificado intermediária, Bastando você selecione o certificado de servidor, desde as linhas "-----BEGIN CERTIFICATE-----" e "-----END CERTIFICATE-----" e colá-lo em um novo arquivo texto e proceder com a instalação de acordo com o procedimento descrito Aqui.

2) Como faço uma cópia de backup do meu certificado digital em um servidor Apache?

Em seu httpd.conf você tem configurado três arquivo, (chave pública e Privada) mais o certificado intermediário em caso de certificados de 128Bits.
Você deve copiar esses três arquivos que estão configurados nas linhas abaixo em seu httpd.conf.
  • SSLCACertificateFile -> Certificado Intermediário
  • SSLCertificateFile -> Chave Pública
  • SSLCertificateKeyFile -> Chave Privativa

3) Instalei a certificação digital em meu servidor Apache e está ocorrendo o Erro: "no start line:pem_lib.c" ou "no end line:pem_lib.c".

O Apache-SSL utiliza um kit de ferramentas chamado OpenSSL (anteriormente SSleay) para suas rotinas de segurança. O kit OpenSSL é muito específico quanto ao formato dos pedidos de certificado e dos certificados. Especificamente quanto às linhas BEGIN e END, que devem ter o seguinte formato:

-----BEGIN CERTIFICATE-----

este é o seu certificado em código BASE64 para facilidade de transporte

-----END CERTIFICATE-----

Observe que há 5 hífens antes e depois do texto BEGIN e END e eles devem formar a primeira e última linha do certificado (como demonstrado acima). Seja cuidadoso ao recortar e colar o certificado da janela do navegador para o editor de texto, para criar corretamente o arquivo de texto do certificado. Certifique-se de remover quaisquer espaços adicionais, antes e depois das linhas BEGIN e END, caso contrário você verá esta mensagem de erro. Na plataforma UNIX, você talvez precise eliminar também os caracteres CTRL-M.

4) Sempre que inicializo o meu servidor web uma Senha é solicitada, o que é isso?

Quando você gerou o seu par chaves, você solicitou ao OpenSSL (SSLeay) que a sua chave privativa fosse criptografada. Isso é bom, pois se um 'hacker' conseguir o seu arquivo de chave privada, ainda terá que adivinhar a 'Senha de acesso' utilizada para criptografá-lo. Definitivamente, isso não é uma tarefa fácil. Por outro lado, quando o servidor for iniciado, você terá que digitar a 'Senha de acesso' para poder utilizar a chave privativa.

5) Como posso eliminar a exigência da 'Senha de acesso'?

Você pode criar uma cópia não-criptografada da chave, utilizando o seguinte comando:

openssl rsa -in file1.key -out file2.keyfile2.key

conterá sua chave não-criptografada. Se você apontar o seu servidor para este arquivo de chave, ele não pedirá uma 'frase de acesso' dessa vez. Nota Importante: se alguém conseguir a sua chave não-criptografada, poderá fazer-se passar por você (as chaves criam a sua assinatura digital de identificação). Certifique-se de que as permissões relativas àquele arquivo autorizam a leitura apenas pelo usuário 'root' ou 'web server user'. Preferivelmente, inicie o seu servidor de Internet como 'root', mas execute-o como outro servidor, e faça com que a chave possa ser lida somente pelo usuário 'root'.

6) Como posso saber a que chave corresponde cada certificado par o meu servidor Apache?

Sua chave privada contém uma série de números. Dois desses números formam a "chave pública", os outros fazem parte da sua "chave privada" (as duas formam um par exclusivo). Os bits da "chave pública" são incorporados ao seu certificado (obtidos a partir do seu Pedido de Assinatura de Certificado - CSR). Assim, você precisará utilizar os arquivos correspondentes da chave e do certificado. Para verificar se a chave pública em seu certificado corresponde à parte pública da sua chave privada, visualize os dois arquivos e compare os valores "modulus". Para visualizar o certificado:

openssl x509 -noout -text -in certfile

Para visualizar a chave:

openssl rsa -noout -text -in keyfile

As partes "modulus" e "public exponent" da chave e do certificado devem ser exatamente correspondentes.

7) A documentação pede um certificado em formato PEM, mas vocês não me mandam o certificado assim o que devo fazer ?

A documentação do ApacheSSL e os documentos do kit de ferramentas SSLeay referem-se a certificados e solicitações de certificado como arquivos "PEM". Porém, isso não é verdade. O ApacheSSL, como todos os servidores seguros SSL, utiliza o formato padrão X.509 de certificados. Os certificados X.509 são arquivos binários, difíceis de serem enviados por e-mail. Assim, o SSLeay armazena os certificados no formato codificado BASE64 entre as linhas '-----BEGIN-----' e '-----END-----'. A codificação BASE64 foi definida como parte da (antiga) especificação "Privacy Enhanced Mail (PEM)", e por isso a documentação chama o formato dos arquivos de "PEM format".

Alguns servidores realmente utilizam o formato Privacy-Enhanced Mail (PEM), por exemplo, o Lotus Domino antigo, o 4D WebSTAR Server Suite/SSL. Não selecione este formato! Use o formato "Standard", que é o certificado X.509 codificado como BASE64 que o ApacheSSL espera.

Nenhum comentário: