美文网首页JAVAiOS开发程序员
tomcat https配置方法(免费证书)

tomcat https配置方法(免费证书)

作者: 夜_雪 | 来源:发表于2017-01-30 23:34 被阅读8404次

    相较于http,https提供了身份验证与加密通信方法.于是,出于安全性考虑,越来越多的网站开始使用https协议.

    一、环境准备

    为了成功配置https,你需要具备以下环境:

    • java jdk
    • tomcat

    二、SSL证书简介

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

    1. 公开可信认证机构
      例如CA,但是申请一般是收费的,一般几百到几千一年.
    2. 自己生成
      虽然安全性不是那么高,但胜在成本低.

    目前证书有以下常用文件格式:JKS(.keystore),微软(.pfx),PEM(.key + .crt)。其中,tomcat使用JKS格式,nginx使用PEM格式.
    虽然两种方式博主都已经实现过,但是这里只讲JKS格式.

    三、JKS格式证书生成

    好了,我们的jdk要派上用场了

    1. 打开你的终端或者命令行或者其他黑窗口,输入:
    keytool -genkey -v -alias testKey -keyalg RSA -validity 3650 -keystore ~/Lee/test.keystore
    
    • alias: 别名 这里起名testKey
    • keyalg: 证书算法,RSA
    • validity:证书有效时间,10年
    • keystore:证书生成的目标路径和文件名,替换成你自己的路径即可,我定义的是~/Lee/test.keystore
    1. 回车,然后会让你输入一些信息,其中秘钥库口令和秘要口令最好输入同一个,并且记下这个口令,其他的随便填即可


      image.png
    2. 在你刚才的目标路径里拿到生成好的test.keystore.

    四、tomcat配置https

    1. 把keystore证书上传到你的tomcat服务器上(如果你的tomcat在本地,那么不移动也可以),并记下证书所在路径.
    2. cd到tomcat的conf目录下,打开server.xml文件,搜索https找到下面这项:


      tomcat配置文件
    3. 先去掉注释,然后将keystoreFile和keystorePass处替换成你自己的证书路径和生成证书时的口令即可.
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
                   maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
                   clientAuth="false" sslProtocol="TLS" keystoreFile="你的keystore路径" keystorePass="生成证书时的口令"  />
    
    • port: https的端口,默认8443
    • clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证keystoreFile
    • keystoreFile: keystore证书的路径
    • keystorePass: 生成keystore时的口令
    1. 启动tomcat,然后就可以使用https和8443端口访问你的服务了! _

    相关文章

      网友评论

      • 162f56e5cdbb:生成证书提示我路径不对,我是复制你那串命令来执行的,请问这是什么情况
        7a34033461b1:路径换一下
      • 162f56e5cdbb:你好,最后生成证书说我路径不对,我是按照你那个路径复制来的,请问有什么问题?
      • 老顽童v:请问一下 我本地按照您所说的步骤配置可以跑,但是部署到服务器访问只能有ip地址,不能用域名,用域名就提示证书不对 提示如下:客户端和服务器不支持一般 SSL 协议版本或加密套件。 请问下楼主这个有什么办法可以解决嘛 搞了好久没搞好 希望楼主帮忙给个解决方法 谢谢啦
      • 五菱老司机:老帖 可以的哦
      • a2f037f7bfbb:请问,配置好后,怎么用https访问我的项目呢
        夜_雪:@itsLUO 用你平常访问的方式,协议改成https,端口换成https设置的端口,默认443即可
      • Michaelhbjian:你好,请问出现这种错误怎么回事呢?
        [http-nio-80-exec-1] org.apache.coyote.http11.AbstractHttp11Processor.process Error parsing HTTP request header
      • lconcise:你好,按照步骤走了一遍,访问提示安全链接失败,想问下第四步 keystorePass 是上面设置密钥库口令吗
        lconcise:@夜_雪 谢谢了
        夜_雪:@lconcise 对
      • 4e5f67d086be:第一次看到这样的文章!!
      • 夜_雪:@南63 端口冲突?端口冲突的话可以在配置文件里换端口的
        d08242d7e7ee: @夜_雪 试过, 本地都正常 有空再详细说那个鬼情况~
        夜_雪:@南63 试过443吗?
        d08242d7e7ee: @夜_雪 不行, 你试试正式环境的外网就知道了
      • d08242d7e7ee:本地的这个很容易实现,正式环境?之前捣鼓没弄出来 ip映射域名 有端口冲突

      本文标题:tomcat https配置方法(免费证书)

      本文链接:https://www.haomeiwen.com/subject/lmshittx.html