Gerando certificados SSL

2

Eu queria saber se alguém tem alguma idéia de como gerar um certificado de autoridade de certificação e chave usando o openssl? Eu encontrei este site ( link ) para gerar o cliente e servidor certs para o servidor mysql, mas o exemplo é um certificado autoassinado. Eu uso o seguinte comando para executar o servidor e o cliente usando o openssl e os certificados e chaves gerados:

openssl s_server -accept 6502 -cert server-cert.pem -key server-key.pem -CAfile ca-cert.pem -www

openssl s_client -connect 192.168.1.92:6502 -cert client-cert.pem -key client-key.pem -CAfile ca-cert.pem

A saída de erro que recebo é "Verificar código de retorno: 18 (certificado auto-assinado)".

Paul

    
por Paul Lee 08.03.2011 / 00:06

4 respostas

1

Crie a CA raiz (autoassinada):

Vamos dar uma olhada nas opções em detalhes:

  • x509 identifica que um certificado é necessário, em vez de apenas uma solicitação de certificado (veja abaixo).
  • dias 30000 define o certificado para expirar em 30.000 dias. Você pode querer estender esse período. Anote o prazo de validade para que você possa renová-lo quando necessário!
  • sha1 especifica que a criptografia SHA1 deve ser usada. rsa: 2048 define a chave como RSA de 2048 bits.
  • Os nós
  • não especificam senha.
  • keyout e -out especifica onde armazenar o certificado e a chave. A chave deve ser apenas legível por raiz; o certificado pode ser legível por todos e deve ser legível pelo usuário para o qual o Apache é executado.
  • O sinalizador subj define o nome da empresa, o nome do departamento e o endereço do site. Se você deixar de fora, você será solicitado por eles. O CN deve ser o mesmo que o endereço do seu site, caso contrário, o certificado não corresponderá e os usuários receberão um aviso durante a conexão. Certifique-se de não usar uma senha de desafio.

Crie:

sudo openssl req -x509 -nodes -newkey rsa:2048 -sha1 -keyout rootkey.key -out rootca.crt -passin pass:root -days 30000 -subj "/C=DU/ST=Dubai/L=TownCenter/O=AmesCom/CN=AmesCom Int" -config openssl.cnf.my

Criptografa a chave manualmente:

A chave

não é criptografada por causa da opção -nodes, então nós a criptografamos manualmente:

sudo cp rootkey.key rootkey.key.org

sudo openssl rsa -in rootkey.key.org -out rootkey.key

Teste:

para testes imediatos, você pode seguir duas formas:

openssl x509 -text -noout -in rootca.crt 

ou examine seu conteúdo no navegador:

cp rootca.crt /var/www/html/

do navegador solicite o endereço:

http://yourserverdomain/rootca.crt

Agora você pode criar solicitações de certificado e assiná-las com este certificado autoassinado

    
por 13.07.2013 / 11:51
0
  • Você pode comprar certificados assinados de fornecedores comerciais lá fora.
  • Você pode usar OpenCA
  • Você pode criar seu próprio certificado Autoridade
  • Você pode usar certificados autoassinados como mostrado aqui: link
por 08.03.2011 / 00:16
0

Eu escrevi um script no ano passado para fazer tudo isso para mim - criar uma CA falsa e assinar o certificado com essa CA. Certifique-se de adicionar o conteúdo de ca.crt ao arquivo PEM final se precisar ter a cadeia intacta.

link

Dependendo do uso, você ainda receberá problemas de CA com o signatário falso, mas pode funcionar tecnicamente para o seu objetivo.

    
por 08.03.2011 / 01:22
0

Eu resolvi isso há algum tempo, mas aqui está a resposta.

Eu consegui gerar meus próprios certificados usando o seguinte site: ConfiguringApache2ForSSLTLSMutualAuthentication

Eu testei o openssl entre dois PCs e testei através das ondas aéreas entre o modem Sierra Wireless e o servidor openssl.

    
por 25.01.2013 / 14:15