1、自制证书:
- // 生成私钥
- D:\working\zproject-nodejs\https>openssl genrsa -out privatekey.pem 1024
- Generating RSA private key, 1024 bit long modulus
- .................++++++
- .............++++++
- e is 65537 (0x10001)
- // 通过私钥生成CSR证书签名
- D:\working\zproject-nodejs\https>openssl req -new -key privatekey.pem -out certr
- equest.csr
- You are about to be asked to enter information that will be incorporated
- into your certificate request.
- What you are about to enter is what is called a Distinguished Name or a DN.
- There are quite a few fields but you can leave some blank
- For some fields there will be a default value,
- If you enter ‘.‘, the field will be left blank.
- -----
- Country Name (2 letter code) [AU]:CN
- State or Province Name (full name) [Some-State]:省份
- Locality Name (eg, city) []:城市
- Organization Name (eg, company) [Internet Widgits Pty Ltd]:xxx.com
- Organizational Unit Name (eg, section) []:xxx.com
- Common Name (e.g. server FQDN or YOUR name) []:名 姓
- Email Address []:xxx@qq.com
-
- Please enter the following ‘extra‘ attributes
- to be sent with your certificate request
- A challenge password []:
- An optional company name []:
-
- // 通过私钥和证书签名生成证书文件
- D:\working\zproject-nodejs\https>openssl x509 -req -in certrequest.csr -signkey
- privatekey.pem -out certificate.pem
- Signature ok
- subject=/C=CN/ST=***/L=***/O=***.com/OU=***.com/CN=***/emailAddress=***@qq.com
- Getting Private key
2、配置到nodejs-express服务器
将第一步生成的3个文件拷到app.js同目录下。
然后修改bin\www文件。
-
- var app = require(‘../app‘);
- var debug = require(‘debug‘)(‘VidzyTr14:server‘);
- var http = require(‘http‘);
- var https = require(‘https‘);
- var fs = require(‘fs‘);
-
-
- var port = normalizePort(process.env.PORT || ‘80‘||‘443‘);
- app.set(‘port‘, port);
-
-
- var server = http.createServer(app);
-
- var options = {
- key: fs.readFileSync(‘./privatekey.pem‘),
- cert: fs.readFileSync(‘./certificate.pem‘)
- };
- var httpsServer = https.createServer(options,app);
-
-
- var httpPort = normalizePort(process.env.PORT || ‘80‘);
- server.listen(httpPort);
- server.on(‘error‘, onError);
- server.on(‘listening‘, onListening);
-
- var httpsPort = normalizePort(‘443‘);
- httpsServer.listen(httpsPort);
- httpsServer.on(‘error‘,onError);
- httpsServer.on(‘listening‘,onListening);
配置https服务器系列之一:自制ca证书并配置到nodejs-express服务器
原文:http://www.cnblogs.com/syuee/p/6509380.html