Eu tenho uma instância do Node em execução em uma instância do EC2. Acabei de receber meu certificado SSL, chave privada e pacote CA. então eu os coloco no Nodejs como:
var options = {
key: fs.readFileSync("/path/to/private/key"),
crt: fs.readFileSync("/path/to/crt"),
ca: fs.readFileSync("/path/to/ca")
}
var server = require("https").createServer(options, app).listen(443)
Mas esse método nunca funcionou. O navegador continua dizendo ERR_SSL_VERSION_OR_CIPHER_MISMATCH . Eu pensei que este deveria ser o caminho certo para iniciar um servidor https.
Depois de algumas horas sem encontrar nenhuma pista, eu me voltei para o Nginx. Eu corri Nginx e definir sua configuração para aceitar SSL através de arquivos chave e crt. Surpreendentemente, o Nginx lidou bem com isso e passou com sucesso o tráfego para o meu servidor Node (que agora está escutando na porta 3000 como uma porta proxy). Os navegadores também estão recebendo o conteúdo através do 443 com um ícone seguro https aceso.
Portanto, os arquivos de chave são absolutamente bons, porque o Nginx usou esses arquivos para fazer as coisas direito. Então, como poderia o servidor Node não ativar o SSL? Tem alguma coisa a ver com o EC2 ou AWS em geral?