zoukankan      html  css  js  c++  java
  • TOMCAT配置SSL认证为HTTPS协议服务

    
    1 . 问题概述 
    很多安全性要求较高的系统,都会使用安全套接字层(SSL)进行信息交换,
    Sun为了解决在Internet上的实现安全信息传输的解决方案。它实现了SSL和TSL(传输层安全)协议。
    在JSSE中包含了数据加密,服务器验证,消息完整性和客户端验证等技术。通过使用JSSE,
    可以在Client和Server之间通过TCP/IP协议安全地传输数据。今天我们利用Tomcat配置SSL,
    了解其原理
    2 . 案例 
    中国登记结算上海分公司对网络的传输都使用安全套接字层(SSL)进行信息交换
    3 . 配置文件说明
    Keytool使用指南: 
    http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/keytool.html
    Tomcat-ssl配置指南:
    http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html
    配置过程
    1.生成 server key :
    以命令行方式切换到目录%TOMCAT_HOME%,在command命令行输入如下命令(jdk1.4以上带的工具):
    keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3600
    用户名输入域名,如localhost(开发或测试用)或hostname.domainname(用户拥有的域名),
    其它全部以 enter 跳过,最后确认,此时会在%TOMCAT_HOME%下生成server.keystore文件。 
    注:参数 -validity 指证书的有效期(天),缺省有效期很短,只有90天。
    
    
    
    
    2.将生成的server.keystore文件放在TOMCAT/conf下
    
    
    3.修改server.xml文件: 
    去掉下面SSL Connector的注释,修改为如下:
    <!-- Define an 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="conf/server.keystore"
    keystorePass="changeit" />


    参数说明:
    clientAuth
    如果想要Tomcat为了使用这个socket而要求所有SSL客户出示一个客户证书,置该值为true。
    注:本文只说明单向认证,这里设置为false,双向认证的方法,以后有时间再研究。
    keystoreFile
    如果创建的keystore文件不在Tomcat认为的缺省位置(一个在Tomcat运行的home目录下的叫.keystore的文件),则加上该属性。可以指定一个绝对路径或依赖$CATALINA_BASE
    环境变量的相对路径。
    keystorePass
    如果使用了一个与Tomcat预期不同的keystore(和证书)密码,则加入该属性。
    keystoreType
    如果使用了一个PKCS12 keystore,加入该属性。有效值是JKS和PKCS12。
    sslProtocol
    socket使用的加密/解密协议。如果使用的是Sun的JVM,则不建议改变这个值。
    据说IBM的1.4.1版的TLS协议的实现和一些流行的浏览器不兼容。这种情况下,使用SSL。 
    ciphers
    此socket允许使用的被逗号分隔的密码列表。缺省情况下,可以使用任何可用的密码。
    algorithm
    使用的X509算法。缺省为Sun的实现(SunX509)。对于IBM JVMS应该使用ibmX509。
    对于其它JVM,参考JVM文档取正确的值。 
    truststoreFile
    用来验证客户证书的TrustStore文件。
    truststorePass
    访问TrustStore使用的密码。缺省值是keystorePass。
    truststoreType
    如果使用一个不同于正在使用的KeyStore的TrustStore格式,加入该属性。有效值是JKS和PKCS12。

    4.重新启动TOMCAT,访问https://localhost:8443
    一般情况下打开页面之前会提示确认证书的内容。选择OK就可以看到页面了

    5.安装及查看证书。
    
    
  • 相关阅读:
    apue 在 mac 环境编译错误
    Nil Channels Always Block(Go语言中空管道总是阻塞)
    golang 千位分隔符
    golang 导出CSV文件中文乱码的问题
    Redis 事务
    Redis 分库
    Golang http post error : http: ContentLength=355 with Body length 0
    golang error (slice of unaddressable value)
    cannot assign to struct field xxx in map
    jquery 实现抖动效果
  • 原文地址:https://www.cnblogs.com/shiGuangShiYi/p/10117545.html
Copyright © 2011-2022 走看看