zoukankan      html  css  js  c++  java
  • Tomcat的SSL配置keytool生成证书

    Tomcat的SSL配置
    前提是:保证JDK的环境变量配置正确,能够在任何文件夹下使用java命令
    1. 生成 server key
    以命令行方式切换到目录tomcat所在的根目录下,在command命令行输入如下命令(jdk1.4以上带的工具):
    keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3600
    keytool –genkey” 将自动使用默认的算法生成公钥和私钥
    -alias [名称] 给证书取个别名
    -keyalg 指定密钥的算法,如果需要指定密钥的长度,可以再加上keysize参数。密钥长度默认为1024位,使用DSA算法时,密钥长度必须在512到1024之间,并且是64的整数倍
    -keystore 参数可以指定密钥库的名称。密钥库其实是存放密钥和证书的文件,密钥库对应的文件如果不存在自动创建。
    -validity 证书的有效日期,默认是90天
    -keypass changeit 不添加证书密码
    -storepass changeit e 不添加存储证书问价的密码(证书要加密的话去掉后面的两项)
    输入相关信息后 最后确认 便会在tomcat根目录下生成server.keystore 文件。

    2. 将证书导入的JDK的证书信任库中:

    导入过程分2步,第一步是导出证书,第二步是导入到证书信任库,命令如下:
    keytool -export -trustcacerts -alias tomcat -file server.cer -keystore server.keystore -storepass changeit
    -file server.cer 证书文件所在的地址
    -keystore 证书存储器所在的地址
    -storepass keystore的密码

    keytool -import -trustcacerts -alias tomcat -file server.cer -keystore cacerts -storepass changeit
    如果有提示,输入Y就可以了。

    这步对于Tomcat的SSL配置不是必须,但对于CAS SSO是必须的,否则会出现如下错误:edu.yale.its.tp.cas.client.CASAuthenticationException: Unable to validate ProxyTicketValidator。。。
    其他有用keytool命令(列出信任证书库中所有已有证书,删除库中某个证书):
    keytool -list -keystore tomcat.keystore
    删除证书
    keytool -delete -trustcacerts -alias tomcat -keystore D:/sdks/jdk1.5.0_11/jre/lib/security/cacerts -storepass changeit
    3. 配置TOMCAT :
    修改%TOMCAT_HOME%confserver.xml,以文字编辑器打开,查找这一行:
    xml 代码
    <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
    将之后的那段的注释去掉,并加上 keystorePass及keystoreFile属性。
    注意,tomcat不同版本配置是不同的:
    Tomcat4.1.34配置:
    xml 代码
    <!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8443"
    enableLookups="true" scheme="https" secure="true" acceptCount="100"
    useURIValidationHack="false" disableUploadTimeout="true"
    clientAuth="false" sslProtocol="TLS"
    keystoreFile="server.keystore" keystorePass="changeit"/>
    Tomcat5.5.9配置:
    xml 代码
    <!-- 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="server.keystore"
    keystorePass="changeit"/>
    Tomcat6.0配置
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS"
    keystoreFile="server.keystore" keystorePass="000000"
    truststoreFile="server.keystore" truststorePass="000000"/>
    4注意事项:

    (1) 生成证书的时间,如果IE客户端所在机器的时间早于证书生效时间,或者晚于有效时间,IE会提示“该安全证书已到期或还未生效”

    (2) 如果IE提示“安全证书上的名称无效或者与站点名称不匹配”,则是由生成证书时填写的服务器所在主机的域名“您的名字与姓氏是什么?”/“What is your first and last name?”不正确引起的

    5、遗留问题:

    (1)如果AC主机不能通过域名查找,必须使用IP,但是这个IP只有在配置后才能确定,这样证书就必须在AC确定IP地址后才能生成

    (2)证书文件只能绑定一个IP地址,假设有10.1.25.250 和 192.168.1.250 两个IP地址,在证书生成文件时,如使用了10.1.25.250,通过IE就只能使用10.1.25.250 来访问AC-WEB,192.168.1.250是无法访问AC-WEB的。

    tomcat https 该网站证书不受安全信任
    这个说明你已经配置成功了, 弹出框是浏览器的设置问题,本机测试是不需要openssl生成ca认证的证书的!
    你的RootCA未经过浏览器的默认安全设置; 所以会提示;
    如果你的CA换做浏览器默认的可以接受的CA,比如:Verisign等.或者把该站点加入到可信任站点,都可以去掉该提示了.

  • 相关阅读:
    CSZ CMS 1.2.7 xss分析与复现
    蚁剑改造过WAF系列(一)
    代理池
    二维码劫持案例分析
    入门KKCMS代码审计
    Xposed+XServer无需脱壳抓取加密包
    通达OA前台任意用户登录分析
    ATutor学习内容管理系统任意文件上传漏洞(CVE-2019-12169)分析
    调试System.AggregateException-即使在异步代码中也是如此
    关于System.Exception
  • 原文地址:https://www.cnblogs.com/water-wjf/p/12941130.html
Copyright © 2011-2022 走看看