一、生成pem格式的证书和nodejs加载证书
1.输入如下命令生成证书
openssl genrsa 1024 > key.pem
设置密码加密
openssl genrsa -des3 1024 > key.pem
2.输入如下命令生成安全证书
openssl req -x509 -days 365 -new -key key.pem > cert.pem
按照提示输入证书相应的信息
如果证书设置有密码,在nodejs中加载时,需要输入密码
var privateKey = fs.readFileSync('./Data/key.pem', 'utf8');
var certificate = fs.readFileSync('./Data/cert.pem', 'utf8');
var credentials = {key: privateKey, cert: certificate,passphrase:"111111"};
------------------------------------------------------------------------------------------------------------------------------------
二、生成crt和key证书文件
1.使用openssl 生成sha256的证书,私有 privatekey.key,数字证书 certificate.crt
openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:1024 -keyout privatekey.key -out certificate.crt
注意:在Organizational Unit Name 和 Common Name 中输入对于的域名
2.设置privatekey.key密码
openssl genrsa -des3 1024 > privatekey.key
三、一个证书增加多个备用域名DNS
1.修改openssl.cnf中的配置信息,
开启 req_extensions = v3_req
2.在v3_req中增加:
[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
#增加的内容
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = *.cloudgis.wh
DNS.2 = thor.arcgiscloud.com
DNS.3 =*.kxyt.com
3.重新生成多DNS的 crt和key证书
openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:1024 -keyout privatekey.key -out certificate.crt-extensions v3_req -config openssl.cnf
四、将crt和key证书转换为Java keystore证书
1.将crt和key证书合并到 p12证书文件中,并输入p12证书密码(如:123456),在下面转换keystore证书和tomcat配置https时需要用到:
openssl pkcs12 -export -in certificate.crt -inkey privatekey.key -out mycert.p12
2.将p12证书转换为 tomcat.keystore文件
keytool -importkeystore -v -srckeystore mycert.p12 -srcstoretype pkcs12 -srcstorepass 123456 -destkeystore tomcat.keystore -deststoretype jks -deststorepass 123456
即实现多种语言之间的证书共用,以及多个域名共用一个证书!