Os dois arquivos de que você precisa são um certificado SSL codificado por PEM e uma chave privada. Certos e chaves codificados por PEM são texto codificado em Base64 com delimitadores de início / fim que parecem -----BEGIN RSA PRIVATE KEY-----
ou semelhantes.
Para criar um certificado SSL, você primeiro precisa gerar uma chave privada e uma solicitação de assinatura de certificado, ou CSR (que também contém sua chave pública). Você pode fazer isso de várias maneiras, mas veja como em OpenSSL.
openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem
Isso fará com que você entre em um prompt interativo para gerar uma chave privada RSA de 2048 bits e um CSR que contém todas as informações que você escolher inserir nos prompts. ( Observação: o nome comum é onde você deseja colocar o nome de domínio que usará para acessar seu site. ) Depois de fazer isso, você normalmente enviaria este CSR a uma autoridade de certificação confiável e depois de validada seu pedido, você receberá um certificado.
Se você não se importa se o seu certificado é confiável (geralmente o caso para fins de desenvolvimento), você pode apenas criar um certificado autoassinado. Para fazer isso, podemos usar quase a mesma linha, mas vamos passar dois parâmetros extras.
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
Isso lhe dará um certificado (válido por 10 anos) e um par de chaves que você pode usar no trecho de código postado.
Basta seguir este procedimento:
crie a pasta onde deseja armazenar sua chave e certificado:
mkdir conf
vá para esse diretório:
cd conf
pegue este
ca.cnf
arquivo para usar como um atalho de configuração:wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/ca.cnf
crie uma nova autoridade de certificação usando esta configuração:
openssl req -new -x509 -days 9999 -config ca.cnf -keyout ca-key.pem -out ca-cert.pem
agora que temos nossa autoridade de certificação em
ca-key.pem
eca-cert.pem
, vamos gerar uma chave privada para o servidor:openssl genrsa -out key.pem 4096
pegue este
server.cnf
arquivo para usar como um atalho de configuração:wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/server.cnf
gere a solicitação de assinatura de certificado usando esta configuração:
openssl req -new -config server.cnf -key key.pem -out csr.pem
assine o pedido:
openssl x509 -req -extfile server.cnf -days 999 -passin "pass:password" -in csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem
Encontrei esse procedimento aqui , junto com mais informações sobre como usar esses certificados.
fonte