Jak tworzyć.pliki pem dla serwera www https

Używam frameworka Express W Node.js do utworzenia serwera www. Chcę, aby transport był oparty na SSL.

Kod do utworzenia serwera www https jest jak poniżej.

var app = express.createServer({
  key: fs.readFileSync('./conf/key.pem'),
  cert: fs.readFileSync('./conf/cert.pem')
});
module.exports = app;

Pytanie: Jak utworzyć klucz.pem i cert.pem wymagany przez express?

Author: John Slegers, 2012-10-13

2 answers

Dwa potrzebne pliki to certyfikat SSL zakodowany PEM i klucz prywatny. Klucze i certy zakodowane w PEM są zakodowanym tekstem Base64 z ogranicznikami początku / końca, które wyglądają jak -----BEGIN RSA PRIVATE KEY----- lub podobne.

Aby utworzyć certyfikat SSL, musisz najpierw wygenerować klucz prywatny i żądanie podpisania certyfikatu lub CSR (który również zawiera twój klucz publiczny).Możesz to zrobić na wiele sposobów, ale oto jak to zrobić w OpenSSL.

openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem

Spowoduje to wprowadzenie interaktywnego monitu do wygenerowania 2048-bitowy klucz prywatny RSA i CSR, który zawiera wszystkie informacje, które zdecydujesz się wprowadzić na monity. (Uwaga: nazwa zwyczajowa jest miejscem, w którym chcesz umieścić nazwę domeny, której będziesz używać, aby uzyskać dostęp do witryny.) gdy to zrobisz, Zwykle przesyłasz tę CSR do zaufanego urzędu certyfikacji, a po zatwierdzeniu wniosku otrzymasz certyfikat.

Jeśli nie zależy ci na zaufaniu certyfikatu (zwykle w celach rozwojowych), możesz po prostu utwórz certyfikat z własnym podpisem. Aby to zrobić, możemy użyć prawie tej samej linii, ale przekażemy dwa dodatkowe parametry.

openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

To da ci cert (ważny przez 10 lat) i parę kluczy, których możesz użyć w opublikowanym fragmencie kodu.

 165
Author: Paul Kehrer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-16 03:34:11

Po prostu postępuj zgodnie z tą procedurą:

  1. Utwórz folder, w którym chcesz przechowywać klucz i certyfikat:

    mkdir conf


  1. Przejdź do katalogu:

    cd conf


  1. Pobierz ten plik ca.cnf, aby użyć go jako skrótu konfiguracyjnego:

    wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/ca.cnf


  1. Utwórz nowy urząd certyfikacji używając tej konfiguracji :

    openssl req -new -x509 -days 9999 -config ca.cnf -keyout ca-key.pem -out ca-cert.pem


  1. Teraz, gdy mamy nasz certyfikat w ca-key.pem i ca-cert.pem, wygenerujmy klucz prywatny dla serwera:

    openssl genrsa -out key.pem 4096


  1. Pobierz ten plik server.cnf, aby użyć go jako skrótu konfiguracyjnego:

    wget https://raw.githubusercontent.com/anders94/https-authorized-clients/master/keys/server.cnf


  1. Wygenerowanie żądania podpisania certyfikatu przy użyciu tej konfiguracji :

    openssl req -new -config server.cnf -key key.pem -out csr.pem


  1. Podpisz prośbę:

    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

Znalazłem ten zabieg proszę., wraz z Więcej informacji na temat korzystania z tych certyfikatów.

 10
Author: John Slegers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-11 00:47:08