常见问题

本文介绍Jetty的SSL数字证书配置,和Tomcat一样需要将证书导入到Java密钥库(keystore)中,然后配置证书路径和keystore密码即可完成证书配置,详细如下:

本文介绍Jetty的SSL数字证书配置,和Tomcat一样需要将证书导入到Java密钥库(keystore)中,然后配置证书路径和keystore密码即可完成证书配置,详细如下:

java jetty ssl

1. 转换证书格式

通常签发的证书是x.509标准的格式证书,例如.cer、.crt、.pem,证书的格式转换请参考:SSL/TLS证书的几种文件类型

2. 导入证书

使用JDK自带的keytool工具进行证书导入PFX格式证书,命令行工具进入JDK的keytool目录,执行下述命令:

keytool -import -alias server -trustcacerts
-file server.crt -trustcacerts
-keystore %JAVA_HOME%/jre/lib/security/cacerts
-storepass changeit

%JAVA_HOME%是指操作系统中的环境变量JAVA的环境目录,storepass指输入密码,java中cacerts证书库默认密码为changeit

注意:

-alias server的 server名称是制作CSR时生成的私钥文件名。
如果报错“java.lang.Exception: Input not an X.509 certificate”,请检查证书是否为x.509标准的证书(不含私钥、和中级证书)

3、配置keystore和密码

编辑Jetty连接配置中设置证书和密码

<Call name="addConnector">
<Arg>
<New class="org.mortbay.jetty.security.SslSocketConnector">
<Set name="maxIdleTime">30000</Set>
<Set name="keystore"><SystemProperty name="jetty.home" default="." />server.keystore</Set>
<Set name="password">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
<Set name="keyPassword">OBF:1u2u1wml1z7s1z7a1wnl1u2g</Set>
<Set name="truststore"><SystemProperty name="jetty.home" default="." />server.keystore</Set>
<Set name="trustPassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
</New>
</Arg>
</Call>

相关文章