windows+tomcat+https(免费证书)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012557538/article/details/80262591

方法一:使用JAVA自带的keytool生成证书,但是该方法生成的证书不是有效证书,不被浏览器信任,如果是被信任的站点,浏览器左侧会有个绿色的图标,但是这种方法简单,本地就可以轻松测试。

要想使用https,首先,我们需要有SSL证书,证书可以通过两个渠道获得:

  1. 公开可信认证机构
    例如CA,但是申请一般是收费的,一般几百到几千一年.
  2. 自己生成
    虽然安全性不是那么高,但胜在成本低.
  3. 目前证书有以下常用文件格式:JKS(.keystore),微软(.pfx),PEM(.key + .crt)。其中,tomcat使用JKS格式,nginx使用PEM格式.这里用JKS做示例
  4. 生成JKS证书
  5. 打开命令行输入keytool -genkey -v -alias testKey -keyalg RSA -validity 3650 -keystore E:\testKey\test.keystore
  6. alias: 别名 这里起名testKey
    keyalg: 证书算法,RSA
    validity:证书有效时间,10年
    keystore:证书生成的目标路径和文件名,替换成你自己的路径即可,我定义的是E:\testKey\test.keystore
    回车,然后会让你输入一些信息,其中秘钥库口令和秘要口令最好输入同一个,并且记下这个口令,(配置tomcat会用到该口令)其他的可随意填
  7. Tomcat配置Https
  8. 打开tomcat下的conf目录下的server.xml文件,搜寻https即可定位到相应的组件,完整的配置如下:
  9. <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
                   maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
                   clientAuth="false" sslProtocol="TLS" keystoreFile="你的keystore路径" keystorePass="生成证书时的口令"  />
  10. 网址输入https://127.0.0.1:8443可正常访问,但是会发现http://127.0.0.1:8080也可以正常访问但是并没有跳转到https协议,这里我们做如下配置
  11. 在web.xml末尾加上如下配置:

    <security-constraint>

        <web-resource-collection >

                  <web-resource-name >SSL</web-resource-name>

                  <url-pattern>/*</url-pattern>

           </web-resource-collection>

           <user-data-constraint>

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

           </user-data-constraint>

    </security-constraint>

    然后我们访问Http端口时就会跳转到https协议端口


    方法二,见后续文章

猜你喜欢

转载自blog.csdn.net/u012557538/article/details/80262591