您的位置:首页 > 理论基础 > 计算机网络

TOMCAT 6/7 中配置HTTPS

2016-05-31 09:58 441 查看
一、生成cyjch.keystore

keytool -genkey -alias cyjch -keyalg RSA -keystore cyjch.keystore -dname "CN=zspuren.com, OU=zspuren.com, O=zspuren.com, L=SH, ST=SH, C=CN" -keypass cyjch_123456 -storepass cyjch_123456  

二、生成cyjch.cer证书

keytool -export -alias cyjch -keystore cyjch.keystore -file cyjch.cer -storepass cyjch_123456

三、 导入证书

keytool -import -file cyjch.cer -storepass cyjch_123456 -keystore cyjch.truststore -alias serverkey -noprompt

四、将所访问的https站点的证书加入jre的信任证书中 

keytool -import -alias cyjch -keystore "%JAVA_HOME%/JRE/LIB/SECURITY/cacerts"  -trustcacerts -file cyjch.cer -storepass cyjch_123456(windows)

keytool -import -alias cyjch -keystore "$JAVA_HOME/jre/lib/security/cacerts"  -trustcacerts -file cyjch.cer -storepass cyjch_123456(linux)

如果出现 keytool错误: java.io.IOException: Keystore was tampered with, or password was incorrect 则把%JAVA_HOME%/JRE/LIB/SECURITY的cacerts文件删除就可以了

然后将导入的cacerts加上执行权限

[root@computer1 security]# chmod a+x cacerts

五、 TOMCAT 6中server.xml文件配置

<Connector port="8443"  protocol="org.apache.coyote.http11.Http11Protocol" 

               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

               enableLookups="true" disableUploadTimeout="true"

               acceptCount="100" scheme="https" secure="true"

      SSLEnabled="true" clientAuth="false"

      keystoreFile="c:\cyjch.keystore" keystorePass="123456"

      truststoreFile="c:\cyjch.truststore" truststorePass="123456"/>

<Connector port="8443"  protocol="org.apache.coyote.http11.Http11Protocol" 

               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

               enableLookups="true" disableUploadTimeout="true"

               acceptCount="100" scheme="https" secure="true"

      SSLEnabled="true" clientAuth="false"

      keystoreFile="/opt/soft/tomcat-https/cer/cyjch.keystore" keystorePass="cyjch_123456"

      truststoreFile="/opt/soft/tomcat-https/cer/cyjch.truststore" truststorePass="cyjch_123456"/>

属性说明:

clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证

keystoreFile:服务器证书文件路径

keystorePass:服务器证书密码

truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书

truststorePass:根证书密码

属性说明:

 port:     这个port属性(默认值是8443)是 TCP/IP端口数码,Tomcat在其上监听安全连接。你可以把它更改成任何你愿意要的数值(如默认的https通信,数目是443)。不过

               ,在许多操 作系统中,要想在比1024小的端口数码上运行Tomcat,需要特殊的设置(它超出了这个文档资料的范围)。

 

redirectPort: 如 果你在这里更改端口数值,你还必须更改在non-SSL连接器上的redirectPort 这个属性特定的值。这允许Tomcat自动地redirect那些试图访问有安全限制

               页面的用户,指明根据 Servlet 2.4 Specification要求,SSL是必需的。

 

clientAuth: 如果你想要Tomcat要求所有的SSL客户在使用这个socket时出示用户认证书,把这个值设定为 true 。如果你想要Tomcat要求出示用户认证书,但是如果没有认

               证书也可以, 就把这个值设定为want 。

 

keystoreFile: 如 果你产生的keystore文件不在Tomcat期望的默认地方(一个叫做.keystore 的文件在Tomcat运行的主目录),就添加这个属性。你可以指定一个绝对路径名

               称, 或者一个由$CATALINA_BASE环境变量而派生的相对路径名称。

 

keystorePass: 如果你使用一个不同的keystore(以及认证书)密码,而不是Tomcat期望的密码 (就是changeit),添加这个元素。

 

keystoreType: 如果使用一个PKCS12 keystore的话,就添加这个element。 有效的值是JKS 和 PKCS12。

 

sslProtocol: 要在这个socket上被使用的加密/解密协定。如果你在使用Sun的JVM,我们不提倡更改 这个值。据报道,TLS协定的IBM's 1.4.1 实现与一些通用的浏览器不

               兼容。 如果是这样,就使用value SSL。

 

ciphers: 这个socket允许使用的由逗号分隔开的加密密码列单。默认的情况下,任何可用的密码都允许被使用。

 

algorithm: 可用的X509算法。默认是Sun的实现( SunX509 )。 对于IBM JVMs,你应该使用值 IbmX509。对于其他卖主,查阅JVM文档资料来 找正确的值。

 

truststoreFile: 用来验证用户认证书的TrustStore文件。

 

truststorePass: 访问TrustStore的密码。默认值就是keystorePass的值。

 

truststoreType: 如果你在使用与KeyStore不同格式的TrustStore,添加这个元素。 合法的值是JKS和PKCS12

 

keyAlias: 如果 keystore 里面有多个 key,你可以为用这个选项为加入的 key 起一个名字。 如果没有指定名字,使用时 keystore 内的第一个 key 将会被使用。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: