TOMCAT HTTPS访问配置应用

TOMCAT HTTPS访问设置

 

1.      首先确定已经安装了JDK JRE,并配置java运行环境。

On Windows

C:\> set JAVA_HOME=C:\Program Files\Java\jdk 1.6.0_16

C:\> set PATH=%JAVA_HOME%\bin;%PATH%

On Linux:

# export JAVA_HOME=/usr/java/latest

# export PATH=$JAVA_HOME/bin:$PATH

2.      使用java 自带的keytool生成证书

打开命令行窗口,运行:

Keytool

应该能看到相关的帮助文本,否则检查你的java运行环境是否正确。

键入以下命令来生成一个自签名的服务器证书

keytool -genkeypair -alias tomcat -keyalg RSA -keysize 1024 -dname "CN=localhost, OU=Organization, O=Company Name, L=City, S=State, C=US" -validity 365 -keystore keystore <eg: D:\tomcat.keystore>
Enter keystore password: <eg:tomcat>

这样就生成了证书,将证书放到合适的地方(任意地方都可以)

 

Keytool –genkey –alias (证书名 eg:  tomcat) –keyalg RSA –keystore (证书存放路径 eg: D:\tomcat.keystore)

 

keytool -genkeypair -alias tomcat -keyalg RSA -keysize 1024 -dname "CN=localhost, OU=Organization, O=Company Name, L=City, S=State, C=US" -validity 365 -keystore e:/tomcat.keystore

 

 

keytool -genkey -alias tomcat -keyalg RSA -keystore e:/tomcat.keystore -validity 36500

 

keytool -genkey -alias lenny -keyalg RSA -keystore C:\lenny -validity 36500 -keysize 512

其中lenny是别名,可以随便取;-keyalg RSA是加密算法;-keystore C:\lenny 是生成的文件(C盘下)       -validity 36500是有效期为10年;-keysize 512生成的密钥是512位的。

( 注意: 填写具体信息时,"名字和姓氏"一定是你的域名或IP地址,比如我在实验室没有域名,IP地址为192.168.2.101,所以我的"名字和姓氏"填写的是192.168.2.101,所以实验室的其他电脑也可以使用https访问我的Web应用程序   )

 

 

3.      修改tomcat目录下的server.xml文件并找到关于SSL的相关段

<!--
<Connector port="8443" protocol="HTTP/1.1"
SSLEnabled="true" maxThreads="150" scheme="https"
secure="true" clientAuth="false" sslProtocol="TLS" />

-->

去掉ssl 相关段的注释。

添加keystoreFile = “D:\tomcat.keystore

添加keystorePass = “tomcat”

 

4.      重启TOMCAT 就可使用HTTPS访问项目了。

5.      如何配置tomcat 总是使用HTTPS 访问

6.      WEB-INF/web.xml中的</welcome-file-list>后面加上这样一段:

<!—

Require HTTPS for everything except /img (favicon) and /css.

-->
<security-constraint>
    <web-resource-collection>
        <web-resource-name>HTTPSOnly</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>
<security-constraint>
    <web-resource-collection>
        <web-resource-name>HTTPSOrHTTP</web-resource-name>
           <url-pattern>*.ico</url-pattern>
           <url-pattern>/img/*</url-pattern>
           <url-pattern>/css/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
</security-constraint>

 

 

配置指定内容访问需要HTTPS

<!-- 定义哪些页面需要使用https,只需要后台使用即可。 -->

<security-constraint>

      <web-resource-collection>

        <web-resource-name>HTTPSOnly</web-resource-name>

        <url-pattern>/admin_index.jsp</url-pattern>

        <url-pattern>/login.jsp</url-pattern>

      </web-resource-collection>

      <user-data-constraint>

        <transport-guarantee>CONFIDENTIAL</transport-guarantee>

      </user-data-constraint>

</security-constraint>

 

 

 

7.      生成服务器证书请求

keytool -certreq -keyalg RSA -alias tomcat -file server.csr

-keystore <your_keystore_filename>

 

keytool -certreq -keyalg RSA -alias tomcat -file server.csr -keystore e:/tomcat.keystore

 

8.      CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,测试时创建CA 其效果一样的。

openssl req -new -x509 -keyout ca.key -out ca.crt

 

*这一步可能提示什么无法签证什么的,忽略不计。

 

9.      使用生成的CA来给刚才的csr 文件签名。

Openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key .

 

10.  导入CA根证书

keytool -import -alias root -keystore <your_keystore_filename>

-trustcacerts -file <filename_of_the_chain_certificate>

 

 

keytool -import -alias root -keystore tomcat.keystore -trustcacerts -file  ca.crt

 

 

 

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 -out G:\SSL\server.der - outform DER

12.  openssl.cfg 文件需要修改的地方。

1.      [ policy_match ] 部分,前三个都是match,需要把stateOrProvinceNameorganizationName都修改成optional

2.      [ CA_default ] 部分,dir 修改成./PEM/demoCA

13.  将根证书导入javacacerts 证书库中。

进入$JAVA_HOME \jre6\lib\security,运行:

keytool -import -alias jhkj -keystore cacerts -file <filename_of_the_chain_certificate> -trustcacerts

cacerts证书库的默认密码是:changeit

1.    查看证书列表

keytool -list -keystore cacerts

2.    删除证书

keytool -delete -alias jhkj -keystore cacerts

14.  11

15.  2

16.  3

17.  4

18.  5

 

 

 

 

New add   11  12 以后忽略,生成证书的时候要和openssl Bin路径 结合起来,路径要灵活应用。(将tomcat.keystore  server.csr文件 copy openssl Bin下,执行openssl的命令)

 

如果启动tomcate 无法加载或识别证书,删除 tomcate  bintcnative-1.dll文件。

 

 

上述红色部分是必须按顺序执行的。

 

删除证书:

keytool -delete -alias tomcat -keystore e:\tomcat.keystore -storepass tomcat

 

    删除其它也是 import等更改为delete即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值