NodeJS和SpringBoot的SSL配置
- NodeJS使用OpenSSL生成的.pem格式证书
- SpringBoot使用了JDK的keytool生成的证书
- 主要是单向验证,只需要验证服务器
SpringBoot
1、生成密钥库
# keytool -genkey -alias server -keyalg RSA -keystore serverKeystore.jks
2.导出密钥库公钥、信息等到证书中
# keytool -export -alias server -keystore serverKeystore.jks -storepass 123456 -file server.cer
3.在SpringBoot的application.yml文件中配置ssl证书
server:
port: 8443
ssl:
key-store: classpath:serverKeystore.jks
key-store-password: 123456
key-password: 123456
NodeJS
通过OpenSSL生成证书文件:
1.生成私钥key文件
# openssl genrsa -out privatekey.pem 1024
2.通过私钥生成CSR证书签名
openssl req -new -key privatekey.pem -out certrequest.csr
3.通过私钥和证书签名生成证书文件
# openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem
4.在NodeJS的expressjs模块使用https
server.js
var app = express();
var https = require('https');
var options = {
key: fs.readFileSync('d:/keystore/openssl/privatekey.pem'),
cert: fs.readFileSync('d:/keystore/openssl/certificate.pem')
};
https.createServer(options, app).listen(7211, function