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?
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.
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ą:
-
Utwórz folder, w którym chcesz przechowywać klucz i certyfikat:
mkdir conf
-
Przejdź do katalogu:
cd conf
-
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
-
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
-
Teraz, gdy mamy nasz certyfikat w
ca-key.pem
ica-cert.pem
, wygenerujmy klucz prywatny dla serwera:openssl genrsa -out key.pem 4096
-
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
-
Wygenerowanie żądania podpisania certyfikatu przy użyciu tej konfiguracji :
openssl req -new -config server.cnf -key key.pem -out csr.pem
-
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.
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