前提条件:tomcat已经配置过https,防火墙里已经配置端口规则
由nginx转发配到tomcat:
比较关键的一步是将jks转成cer、key,其中key必须是没有密码的
Nginx证书配置:tomcat证书jks文件转nginx证书.cet和key文件
1.查看jks文件中的entry.
keytool -list-keystore server.jks
Enter keystore password: (这里输入server.jks密码)
Keystore type: JKS
Keystore provider: SUN
Your keystorecontains 2 entries
inter, Mar 24, 2016, trustedCertEntry,
Certificate fingerprint (SHA1):**************************
tomcat, Mar 24, 2016, PrivateKeyEntry,
Certificate fingerprint (SHA1): ******************
请注意我特意加粗的那个名字,inter和tomcat,这分别是俩个entry的别名,是srcalias,下文的命令会用到,同时这里需要指出我们是要将那个证书转为nginx的配置。这里选择tomcat。
2.将jks文件导出为Nginx所需要的文件.crt和.key
2.1 将”.jks”转为”.p12”(PKCS12格式的证书库)
keytool-importkeystore -srckeystore oldkeystore.jks -srcalias tomcat -destkeystorenewkeystore.p12 -deststoretype PKCS12
· 查看新格式(pkcs12)证书库
keytool-deststoretype PKCS12 -keystore newkeystore.p12 -list
2.2提取证书
openssl pkcs12-in newkeystore.p12 -nokeys -clcerts -out server-ssl.crt
openssl pkcs12 -in newkeystore.p12-nokeys -cacerts -out gs_intermediate_ca.crt
server-ssl.crt是SSL证书,gs_intermediate_ca.crt是中级证书,俩个合并到一起才是nginx服务器所需要的证书
合并证书:cat server-ssl.crt gs_intermediate_ca.crt >server.crt
此时server.crt是一个完成的证书
2.3提取私钥
openssl pkcs12-nocerts -nodes -in newkeystore.p12 -out server.key
2.4.最重要一步转化成没有密码的key文件
openssl rsa -in server.key -out server_no.key
nginx配置:
百度