Jetty下SSL配置

来源:互联网 发布:js实现下拉框 编辑:程序博客网 时间:2024/06/07 21:02
环境:
・jdk1.7.0_09
・Jetty8.1
・eclipse

1,用JDK自带的keytool生成证书
cd D:\JavaStudy\keystore
keytool -genkey -alias dotuian -keyalg RSA -keystore dotuian.keystore
生成了一个表明为dotuian的证书,实际的文件名为dotuian.keystore
备注:
 keystore密码为:  rootadmin
 <dotuian> 的主密码 : test1234

2,导出证书
cd D:\JavaStudy\keystore
keytool -export -file dotuian.crt -alias dotuian -keystore dotuian.keystore
提示"输入keystore密码",此时的密码为上面的keystore密码(rootadmin)

3、把证书导入到客户端JDK中
cd D:\JavaStudy\keystore
keytool -import -keystore "C:\Program Files\Java\jdk1.7.0_09\jre\lib\security\cacerts" -file dotuian.crt -alias dotuian
这里也提示"输入keystore密码",但是这里的密码就不是上述的(rootadmin)密码了,而是默认的 changeit 
不然的话,会提示 "java.io.IOException: Keystore was tampered with, or password was incorrect"异常。
这里应该导入的文件为"C:\Program Files\Java\jdk1.7.0_09\jre\lib\security\cacerts",而不是 "C:\Program Files\Java\jre7\lib\security\cacerts"。
4.配置Jetty
首先将服务器中start.ini中etc/jetty-ssl.xml前面的注释去掉,然后复制jetty目录下的etc/jetty-ssl.xml到自己的项目服务器/etc目录下
修改KeyStore路径及其密码即可。
<?xml version="1.0"?><!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"><!-- =============================================================== --><!-- Configure SSL for the Jetty Server                              --><!-- this configuration file should be used in combination with      --><!-- other configuration files.  e.g.                                --><!--    java -jar start.jar etc/jetty-ssl.xml                        --><!--                                                                 --><!--  alternately, add to the start.ini for easier usage             --><!-- =============================================================== --><Configure id="Server" class="org.eclipse.jetty.server.Server">  <!-- if NIO is not available, use org.eclipse.jetty.server.ssl.SslSocketConnector -->    <New id="sslContextFactory" class="org.eclipse.jetty.http.ssl.SslContextFactory">    <Set name="KeyStore">D:/JavaStudy/keystore/dotuian.keystore</Set>    <Set name="KeyStorePassword">rootadmin</Set>    <Set name="KeyManagerPassword">test1234</Set>    <Set name="TrustStore">D:/JavaStudy/keystore/dotuian.keystore</Set>    <Set name="TrustStorePassword">rootadmin</Set>  </New>  <Call name="addConnector">    <Arg>      <New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">        <Arg><Ref id="sslContextFactory" /></Arg>        <Set name="Port">8443</Set>        <Set name="maxIdleTime">30000</Set>        <Set name="Acceptors">2</Set>        <Set name="AcceptQueueSize">100</Set>      </New>    </Arg>  </Call></Configure>