公司今天一个登陆的地方要修改,需要加一个SSL安全登陆,于是查些资料并总结如下,希望对有用的着的朋友有帮助
文件打包地址:http://www.blogjava.net/Files/lifenote/tomcat配置ssl.rar
一下为帮助说明:
1.1. 安全登录 SSL
1.1.1 WebLogic下面SSL配置:
1.生成 keystoreFile:
* keystoreFile 文件的生成:
%Java_Home%\bin\keytool -genkey -alias localhost-weblogic -keyalg RSA -validity 365 -keystore ./testKey.jks
* csr 文件的生成:
%Java_Home%\bin\keytool -certreq -alias localhost-weblogic -sigalg MD5withRSA -file ./testServer.csr -keystore ./testKey.jks
* 注意: http 的默认端口是80,https 的默认端口是433,ftp 的默认端口是21。
2.部署keystore 文件
在 <http://hostname:7001/console> 中配置刚才生成的 testKey.jks 文件。
1.1.2 Tomcat 下面SSL配置
1.生成 keystoreFile:
* keystoreFile 文件的生成:
%Java_Home%\bin\keytool -genkey -alias localhost-weblogic -keyalg RSA -validity 365 -keystore ./testKey.jks
Example for inner test:
[root@localhost ~]#
/home/tomcat/jdk1.5.0_12/bin/keytool -genkey -alias localhost-tomcat -keyalg RSA -validity 365 -keystore /home/tomcat/apache-tomcat-5.5.23/conf/VCMarketKey.jks
Enter keystore password: someday2007
What is your first and last name?
[Unknown]: lifenote
What is the name of your organizational unit?
[Unknown]: Java
What is the name of your organization?
[Unknown]: Sunxc
What is the name of your City or Locality?
[Unknown]: Beijing
What is the name of your State or Province?
[Unknown]: Beijing
What is the two-letter country code for this unit?
[Unknown]: ZH
Is CN=lifenote, OU=Java, O=Sunxc, L=Beijing, ST=Beijing, C=ZH correct?
[no]: y
Enter key password for <localhost-tomcat>
(RETURN if same as keystore password): someday2007
[root@localhost ~]#
* csr 文件的生成:
%Java_Home%\bin\keytool -certreq -alias localhost-weblogic -sigalg MD5withRSA -file ./testServer.csr -keystore ./testKey.jks
* 注意: http 的默认端口是80,https 的默认端口是433,ftp 的默认端口是21。
2.部署keystore 文件
打开 server.xml 文件,修改内容如下:
* 只需去掉 server.xml 中对SSL定义的注释,在加上 keystoreFile、keystorePass 这两个属性即可。
<Service
name="Catalina">
<Connector
port="8080"
...
</Connector>
<!-- Define a SSL HTTP/1.1 Connector on port 8443 --------------------- 要加入的内容在这里 -->
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="e:/temp_E/ssl/testKey.jks"
keystorePass="aaaaaa"/>
<Connector
port="8009"
...
</Connector>
...
Example for inner test:
<Connector port="443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/home/tomcat/apache-tomcat-5.5.23/conf/VCMarketKey.jks"
keystorePass="password"/>
注意需默认要使用 443 而不是 8443,要使用8443要在apache中配置,保证从apache请求tomcat 采用 <https://ip:8443/>... 的格式。
1.1.3 使用http访问WebService s的客户端配置
Servlet服务器配置好SSL之后,客户端可以使用https访问了。
对于用户使用浏览器访问https的方式,浏览器会弹出安装证书的对话框,确认之后可以正常使用https访问。
对于WebService 通过https方式访问,按照一下步骤:
1. WebService客户端要先取得keyStore文件;
2. 虚拟机系统使用 System.setProperties(…) 设置keyStore信息;
3. 使用 url=<https://ip:port/...> 访问WebService服务