OPENSSL/Tomcat Keytool命令小抄

OPENSSL自签证书一行流

#CN=Common Name,web服务器中所用的域名
#O=Organization,签名机构名称
#C=Country,国家地区
#days 3650,证书10年有效

openssl req -subj '/CN=domain.com/O=My Company Name LTD./C=CN' -new -newkey rsa:2048 -days 3650 -nodes -x509 -keyout server.key -out server.crt

OPENSSL查看信息

#PEM证书信息
openssl x509 -in server.crt -text -noout

#P12证书信息
openssl pkcs12 -info -in server.p12

OPENSSL对证书校验

#输出结果应完全一致
openssl x509 -noout -modulus -in server.crt | openssl md5
openssl rsa -noout -modulus -in server.key | openssl md5
openssl req -noout -modulus -in server.csr | openssl md5

Tomcat用的keystore格式跟pem转换

PEM 转 Keystore

#注意较新版本的tomcat要求直接用p12格式,省略转keystore一步。

#先转换为证密二合一的p12格式文件,注意密码要跟下一步一致,p12的name将成为ks的alias
openssl pkcs12 -export -inkey server.key -in server.crt -name root -out server.p12

#导入到keystore
keytool -importkeystore -srckeystore server.p12 -srcstoretype pkcs12 -destkeystore server.ks
TOMCAT 配置

修改tomcat/conf/server.xml

<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="path/to/server.ks" keystorePass="password"
           clientAuth="false" sslProtocol="TLS"/>

 


Keystore 转 PEM

#先查看keystore内的srcalias对应需要的证书,
keytool -list -v -keystore server.ks

#比如上命令看到 Alias name: root
#选择特定的证书(srcalias)转换成pkcs12格式
keytool -importkeystore -srckeystore server.ks -destkeystore serverks.p12 -srcalias root -srcstoretype jks -deststoretype pkcs12

#从p12提取出证书
openssl pkcs12 -in serverks.p12 -clcerts -nokeys -out serverks.crt

#从p12提取出私钥(必须设置私钥密码)
openssl pkcs12 -in serverks.p12 -nocerts -out serverks.key

#去除私钥文件的密码
openssl rsa -in serverks.key -out serverks_plain.key
#注意从p12转出的文件一般都带有Bag Attributes等一些信息行,可能在特定程序引起不兼容,注意需要手工编辑清理

标签: , , , , ,

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.