Obter um certificado SSL de qualquer uma das principais autoridades de certificação (CAs) pode custar US $ 100 ou mais. Adicione à mistura, notícias que parecem indicar que nem todas as CAs estabelecidas podem ser confiáveis 100% do tempo e você pode decidir contornar a incerteza e eliminar o custo sendo sua própria Autoridade de Certificação.
Passos
Parte 1 de 4: Criando seu Certificado CA
Etapa 1. Gere a chave privada de sua CA, emitindo o seguinte comando
-
openssl genrsa -des3 -out server. CA.key 2048
-
As opções explicadas
- openssl - o nome do software
- genrsa - cria uma nova chave privada
- -des3 - criptografa a chave usando a cifra DES
- -out server. CA.key - o nome da sua nova chave
- 2048 - o comprimento, em bits, da chave privada (consulte os avisos)
- Guarde este certificado e a senha em um local seguro.
Etapa 2. Crie uma solicitação de assinatura de certificado
-
openssl req -verbose -new -key server. CA.key -out server. CA.csr -sha256
-
As opções explicadas:
- req - Cria um Pedido de Assinatura
- -verbose - mostra detalhes sobre a solicitação conforme ela está sendo criada (opcional)
- -new - cria uma nova solicitação
- -key server. CA.key - A chave privada que você acabou de criar acima.
- -out server. CA.csr - O nome do arquivo da solicitação de assinatura que você está criando
- sha256 - O algoritmo de criptografia a ser usado para assinar solicitações (se você não sabe o que é, não altere isso. Você só deve alterar isso se souber o que está fazendo)
Etapa 3. Preencha as informações o máximo possível
-
Nome do país (código de 2 letras) [AU]:
nós
-
Nome do estado ou província (nome completo) [algum estado]:
CA
-
Nome da localidade (por exemplo, cidade) :
Vale do Silício
-
Nome da organização (por exemplo, empresa) [Internet Widgits Pty Ltd]:
wikiHow, Inc.
- Nome da unidade organizacional (por exemplo, seção) :
-
Nome comum (por exemplo, FQDN do servidor ou SEU nome) :
-
Endereço de e-mail :
Etapa 4. Autoassine seu certificado:
-
openssl ca -extensions v3_ca -out servidor. CA-assinado.crt -keyfile servidor. CA.key -verbose -selfsign -md sha256 -enddate 330630235959Z -infiles servidor. CA.csr
-
As opções explicadas:
- ca - Carrega o módulo da Autoridade de Certificação
- -extension v3_ca - Carrega a extensão v3_ca, um must-have para uso em navegadores modernos
- -out server. CA-signed.crt - O nome de sua nova chave assinada
- -keyfile server. CA.key - A chave privada que você criou na etapa 1
- -verbose - mostra detalhes sobre a solicitação conforme ela está sendo criada (opcional)
- -selfsign - Diz ao openssl que você está usando a mesma chave para assinar o pedido
- -md sha256 - O algoritmo de criptografia a ser usado para a mensagem. (Se você não sabe o que é, não mude. Você só deve mudar se souber o que está fazendo)
- -enddate 330630235959Z - A data de término do certificado. A notação é YYMMDDHHMMSSZ onde Z está em GMT, às vezes conhecido como horário "Zulu".
- -infiles server. CA.csr - o arquivo de solicitação de assinatura que você criou na etapa acima.
Etapa 5. Inspecione seu certificado CA
- openssl x509 -noout -text -in server. CA.crt
-
As opções explicadas:
- x509 - carrega o módulo x509 para inspecionar certificados assinados.
- -noout - Não produz o texto codificado
- -text - exibe as informações na tela
- -in server. CA.crt - Carrega o certificado assinado
- O arquivo server. CA.crt pode ser distribuído para qualquer pessoa que usará seu site ou usará certificados que você planeja assinar.
Parte 2 de 4: Criando certificados SSL para um serviço, como o Apache
Etapa 1. Crie uma chave privada
-
openssl genrsa -des3 -out server.apache.key 2048
-
As opções explicadas:
- openssl - o nome do software
- genrsa - cria uma nova chave privada
- -des3 - criptografa a chave usando a cifra DES
- -out server.apache.key - o nome da sua nova chave
- 2048 - o comprimento, em bits, da chave privada (consulte os avisos)
- Guarde este certificado e a senha em um local seguro.
Etapa 2. Crie uma solicitação de assinatura de certificado
-
openssl req -verbose -new -key server.apache.key -out server.apache.csr -sha256
-
As opções explicadas:
- req - Cria um Pedido de Assinatura
- -verbose - mostra detalhes sobre a solicitação conforme ela está sendo criada (opcional)
- -new - cria uma nova solicitação
- -key server.apache.key - A chave privada que você acabou de criar acima.
- -out server.apache.csr - O nome do arquivo da solicitação de assinatura que você está criando
- sha256 - O algoritmo de criptografia a ser usado para assinar solicitações (se você não sabe o que é, não altere isso. Você só deve alterar isso se souber o que está fazendo)
Etapa 3. Use seu certificado CA para assinar a nova chave
-
openssl ca -out server.apache.pem -keyfile server. CA.key -infiles server.apache.csr
-
As opções explicadas:
- ca - Carrega o módulo da Autoridade de Certificação
- -out server.apache.pem - O nome do arquivo do certificado assinado
- -keyfile server. CA.key - O nome do arquivo do certificado CA que assinará a solicitação
- -infiles server.apache.csr - O nome do arquivo da solicitação de assinatura de certificado
Etapa 4. Preencha as informações o máximo possível:
-
Nome do país (código de 2 letras) [AU]:
nós
-
Nome do estado ou província (nome completo) [algum estado]:
CA
-
Nome da localidade (por exemplo, cidade) :
Vale do Silício
-
Nome da organização (por exemplo, empresa) [Internet Widgits Pty Ltd]:
wikiHow, Inc.
- Nome da unidade organizacional (por exemplo, seção) :
-
Nome comum (por exemplo, FQDN do servidor ou SEU nome) :
-
Endereço de e-mail :
Etapa 5. Salve uma cópia de sua chave privada em outro local
Crie uma chave privada sem uma senha para evitar que o Apache solicite uma senha:
-
openssl rsa -in server.apache.key -out server.apache.unsecured.key
-
As opções explicadas:
- rsa - executa o programa de criptografia RSA
- -in server.apache.key - O nome da chave que você deseja converter.
- -out server.apache.unsecured.key - O nome do arquivo da nova chave não segura
Etapa 6. Use o arquivo server.apache.pem resultante junto com a chave privada gerada na etapa 1 para configurar seu arquivo apache2.conf
Parte 3 de 4: Criando um certificado de usuário para autenticação
Etapa 1. Siga todas as etapas em _Criando certificados SSL para Apache_
Etapa 2. Converta seu certificado assinado em um PKCS12
openssl pkcs12 -export -in user_cert.pem -inkey user_private_key.pem -out user_cert.p12
Parte 4 de 4: Criando certificados de e-mail S / MIME
Etapa 1. Crie uma chave privada
openssl genrsa -des3 -out private_email.key 2048
Etapa 2. Criar uma solicitação de assinatura de certificado
openssl req -new -key private_email.key -out private_email.csr
Etapa 3. Use seu certificado CA para assinar a nova chave
openssl ca -out private_email.pem -keyfile server. CA.key -infiles private_email.csr
Etapa 4. Converter o certificado em PKCS12
openssl pkcs12 -export -in private_email.crt -inkey private_email.key -out private_email.p12
Etapa 5. Crie um certificado de chave pública para distribuição
openssl pkcs12 -export -out public_cert.p12 -em private_email.pem -clcerts -nokeys -name "Chave Pública WikiHow"
Pontas
Você pode variar o conteúdo das chaves PEM emitindo o seguinte comando: openssl x509 -noout -text -in certificate.pem
Avisos
- As chaves de 1024 bits são consideradas obsoletas. As chaves de 2.048 bits são consideradas seguras para certificados de usuário até 2030, mas são consideradas insuficientes para certificados raiz. Considere essas vulnerabilidades ao criar seus certificados.
- Por padrão, a maioria dos navegadores modernos exibe um aviso de "Certificado não confiável" quando alguém visita seu site. Tem havido muito debate sobre o texto dessas advertências, já que usuários não técnicos podem ser pegos desprevenidos. Geralmente, é melhor usar uma autoridade principal para que os usuários não recebam os avisos.