zoukankan      html  css  js  c++  java
  • eclipse下的tomcat配置https(最简单得配置https)

    近期公司列出一大堆的东西,其中包括https,啥也不想说,你们是无法理解的苦逼的我的

    本文不是双向认证, 双向认证需要让客户端信任自己生成的证书,有点类似登录银行网站的情,如果想知道双向认证的同志可以点击这里

    关于https这些通道可以去百度Google其原理,不废话,自动生成秘钥,需要使用jdk自带的命令keytool。关于keytool的使用请查看:这里或者这里,我这里简单的贴一下使用方式

    (1)java工具keytool

    常用命令:

    (注:生成证书时,CN要和服务器的域名相同,如果在本地测试,则使用localhost)

    keytool -genkey -alias "tomcat" -keyalg "RSA" -keystore "d:mykeystore"  -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" -keypass "changeit" -storepass -validity 180

    参数说明:

    -genkey表示要创建一个新的密钥

    -dname表示密钥的Distinguished Names,

    CN=commonName

    OU=organizationUnit

    O=organizationName

    L=localityName

    S=stateName

    C=country

    Distinguished Names表明了密钥的发行者身份

    -keyalg使用加密的算法,这里是RSA

    -alias密钥的别名

    -keypass私有密钥的密码,这里设置为changeit

    -keystore 密钥保存在D:盘目录下的mykeystore文件中

    -storepass 存取密码,这里设置为changeit,这个密码提供系统从mykeystore文件中将信息取出

    -validity该密钥的有效期为 180天 (默认为90天)

    删除

    keytool -delete -alias catest -keystore d:mykeystore

    查看

    keytool -list -keystore d:mykeystore

    创建证书

    1.服务器中生成证书(注:生成证书时,CN要和服务器的域名相同,如果在本地测试,则使用localhost)

    keytool -genkey -alias "tomcat" -keyalg "RSA" -keystore "d:mykeystore " -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN"-keypass "changeit" -storepass "changeit"

    2.导出证书,由客户端安装:

    keytool -export -alias tomcat -keystore d:mykeystore -file d:mycerts.cer -storepass "changeit"

    3.客户端配置:为客户端的JVM导入密钥(将服务器下发的证书导入到JVM中)

    keytool -import -trustcacerts -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts " -file d:mycerts.cer(这里是证书生成的路径,不是秘钥,而且后续配置的是秘钥而不是这个证书,不要搞混了) -storepass "changeit"

    之后可以看到生成了 catest.cer 文件,之后导入用,keytool的操作就完成了.

    配置tomcat

    如果是在eclipse上面,那么找到eclipse的service(如果不是,找到tomcat下面的server.xml文件),找到server.xml并打开:
    配置如下:

    <Connector SSLEnabled="true" acceptCount="100" clientAuth="false" disableUploadTimeout="true" enableLookups="false"
     keystoreFile="d:catest.key(这里是第一步生成的秘钥位置)" keystorePass="zuecun(这里是秘钥的密码)" maxThreads="25" port="8443" 
    protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true" sslProtocol="TLS"/>

    如果还有其他的8443端口直接注释掉

    接着找到web.xml(与server.xml在同一个目录下)并打开:

    在<welcome-file-list>后面配置:

        <security-constraint>
            <web-resource-collection>
                <web-resource-name>securedapp</web-resource-name>
                <url-pattern>/*</url-pattern>
            </web-resource-collection>
            <user-data-constraint>
                <transport-guarantee>CONFIDENTIAL</transport-guarantee><!-- 如果你希望关闭 SSL ,只需要将 CONFIDENTIAL 改为 NONE 即可。 -->
            </user-data-constraint>
        </security-constraint>

    然后启动服务器,直接访问会自动跳转到你配置好的https端口为8443,注意的是,你这里的证书自己创建出来的没有申请,所以会出现不安全的连接,当然这是本地测试嘛,

    最后一句就是欢迎各路大神丢砖或提意见,谢谢~~~

  • 相关阅读:
    分析脚本搭建docker环境:python, R
    python 正则
    xargs的用法
    sed 用法
    linux系统时区问题
    docker, docker-compose安装和使用
    订单相关
    python开发接口文档
    mysql中的乐观锁,库存相关的简单实现
    mysql中的锁
  • 原文地址:https://www.cnblogs.com/cunkouzh/p/6912751.html
Copyright © 2011-2022 走看看