2
我有一個小網站,我的任務是添加SSL證書。該網站在快遞運行這段代碼將SSL證書添加到Express站點
#!/usr/bin/env node
var debug = require('debug')('one-west-end'),
app = require('../app'),
fs = require('fs'),
http = require('http'),
https = require('https'),
express = require('express');
var keyPath = '../ssl/key.key';
var certPath = '../ssl/cert.crt';
var caPath = '../ssl/cert.crt';
var port = 3000;
if (app.get('env') === 'production') {
port = 80;
}
if (fs.existsSync(keyPath) && fs.existsSync(certPath)) {
port = 443;
var options = {
key: fs.readFileSync(keyPath),
cert: fs.readFileSync(certPath),
};
var server = https.createServer(options, app).listen(port, function(){
console.log("Express server listening on port " + port);
});
} else {
var server = app.listen(port, function() {
console.log('Server started on port ' + port);
debug('Express server listening on port ' + port);
});
}
我沒有創造必要的文件來創建文件,但這個是guide這是使用,這essentilly呼籲:
> openssl genrsa -out ~/domain.com.ssl/domain.com.key 2048`
> openssl req -new -key ~/domain.com.ssl/domain.com.key -out ~/domain.com.ssl/domain.com.csr`
唯一我從購買證書的人那裏收到了一個包含兩個.crt
文件的zip文件。對於一個內容是:
-----BEGIN CERTIFICATE-----
....
-----END CERTIFICATE-----
而另外一個
-----BEGIN CERTIFICATE-----
....
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
....
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
....
-----END CERTIFICATE-----
我使用的是在快遞文件的初始步驟中創建的密鑰文件,但我不知道是什麼文件是我的CA,哪一個是我的證書。我已經嘗試了一些不同的變體,但我總是在Chrome中看到「此網頁不可用」錯誤。
This [article](http://greengeckodesign.com/blog/2013/06/15/creating-an-ssl-certificate-for-node-dot-js/)可能有幫助。 – chridam 2014-10-17 14:25:06
你需要crt-bundle文件,我發現你還沒有創建SSL鏈。在這裏測試你的網站的SSL https://www.sslshopper.com/ssl-checker.html – Paramore 2014-10-17 14:46:28