TOMCATHTTPS访问设置
1.
OnWindows:
C:\>set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_16
C:\>set PATH=%JAVA_HOME%\bin;%PATH%
On Linux:
# exportJAVA_HOME=/usr/java/latest
# exportPATH=$JAVA_HOME/bin:$PATH
2.
打开命令行窗口,运行:
Keytool
应该能看到相关的帮助文本,否则检查你的java运行环境是否正确。
键入以下命令来生成一个自签名的服务器证书
keytool -genkeypair -alias tomcat -keyalg RSA -keysize 1024 -dname "CN=localhost, OU=Organization, O=CompanyName, L=City, S=State, C=US" -validity 365 -keystore D:\tomcat.keystore;
Enter keystore password:<eg:tomcat>
这样就生成了证书,将证书放到合适的地方(任意地方都可以)。
keytool -genkey -alias lenny -keyalg RSA -keystoreC:\lenny -validity 36500 -keysize 512
其中-keyalg RSA是加密算法;-keysize 512生成的密钥是512位,-validity 365是有效期为1年;-keystore 是生成的文件(在D:\tomcat.keystore;盘下);CN是域名。
( 注意: 填写具体信息时,"名字和姓氏"一定是你的域名或IP地址,比如我在实验室没有域名,IP地址为192.168.2.101,所以我的"名字和姓氏"填写的是192.168.2.101,所以实验室的其他电脑也可以使用https访问我的Web应用程序
3.
<!--
<Connector URIEncoding="UTF-8" port="8082" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" SSLEnabled="true" sslProtocol="TLS" />
-->
去掉ssl相关段的注释。
添加如下:其中 key.store文件放在tomcat根目录下;keystoreFile="key.store"
truststoreFile="key.store"
keystorePass="123456"
4.
5.
6.
<!—
Require HTTPS for everything except /img(favicon) and /css.
-->
<security-constraint>
</security-constraint>
<security-constraint>
</security-constraint>
配置指定内容访问需要HTTPS
<!--定义哪些页面需要使用https,只需要后台使用即可。-->
<security-constraint>
</security-constraint>
7.
keytool -certreq -keyalg RSA -alias tomcat -file d:\server.csr
-keystore D:\tomcat.keystore;
-file 表示 将要生成的.csr文件, -keystore表示刚才已经生成的keystore文件。
8.
也可以用下面方式测试:新建工作目录,将openssl安装路径下的apps/CA.pl 和 apps/openssl.cnf(在window中该文件会显示成名为openssl的快速拨号程序)文件复制到该路径。可以修改openssl.cnf文件中的一些参数。启动控制台,执行命令 CA.pl -newca
生成CA工作所需的文件和文件夹。即该目录下新生成的demoCA文件夹。将openssl安装路径下的apps\demoCA\serial文件复制到生成的demoCA文件夹下。可以略去该步骤,在安装路径\apps下执行后续步骤。
创建.key和.crt文件 : openssl req -new-x509 -keyout d:\ca.key -out d:\ca.crt
*这一步可能提示什么无法签证什么的,忽略不计。
9.
Openssl ca -in d:\server.csr -out server.crt -cert ca.crt -keyfile ca.key.
10.
keytool -import -alias root -keystore<your_keystore_filename>
-trustcacerts -file<filename_of_the_chain_certificate>
example:
keytool -import -alias root -keystore d:\tomcat.keystore -trustcacerts -file
11.
keytool -import -alias tomcat -keystore<your_keystore_filename>
-file<your_certificate_filename>
导入证书时,可能会报der 错误,需要将server.crt 转换成 server.der文件
openssl x509 -in G:\SSL\server.crt -outG:\SSL\server.der - outform DER
12.
1.
2.
13.
进入$JAVA_HOME\jre6\lib\security中,运行:
keytool -import -alias jhkj -keystorecacerts -file d:\ca.crt -trustcacerts
cacerts证书库的默认密码是:changeit
1.
keytool -list -keystore cacerts
2.
keytool -delete -alias jhkj -keystorecacerts
14.
15.
16.
17.
18.
New add
如果启动tomcate 无法加载或识别证书,删除 tomcate
上述红色部分是必须按顺序执行的。
删除证书:
keytool -delete -aliastomcat -keystore e:\tomcat.keystore -storepass tomcat