tomcat 配置https证书

一、环境准备

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

  • java jdk
  • tomcat

二、SSL证书简介

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

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

目前证书有以下常用文件格式:JKS(.keystore),微软(.pfx),PEM(.key + .crt)。其中,tomcat使用JKS格式,nginx使用PEM格式。

三、JKS格式证书生成

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

  1. 打开你的终端或者命令行或者其他黑窗口,输入:
keytool -genkey -v -alias testKey -keyalg RSA -validity 3650 -keystore ~/Lee/test.keystore

参数:

  • keystore:证书生成的目标路径和文件名,替换成你自己的路径即可,我定义的是~/Lee/test.keystore
  • genkey 在用户主目录中创建一个默认文件”.keystore”,还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书(在没有指定生成位置的情况下,keystore会存在用户系统默认目录)
  • alias 产生别名 每个keystore都关联这一个独一无二的alias,这个alias通常不区分大小写
  • keyalg 指定证书密钥的算法 (如 RSA DSA,默认值为:DSA)
  • validity 指定创建的证书有效期多少天(默认 90)
  • keysize 指定密钥长度 (默认 1024)
  • storepass 指定密钥库的密码(获取keystore信息所需的密码)
  • keypass 指定别名条目的密码(私钥的密码)
  • dname 指定证书发行者信息 其中: “CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名 称,ST=州或省份名称,C=单位的两字母国家代码”
  • list 显示密钥库中的证书信息 keytool -list -v -keystore 指定keystore -storepass 密码
  • v 显示密钥库中的证书详细信息
  • export 将别名指定的证书导出到文件 keytool -export -alias 需要导出的别名 -keystore 指定keystore -file 指定导出的证书位置及证书名称 -storepass 密码
  • file 参数指定导出到文件的文件名
  • delete 删除密钥库中某条目 keytool -delete -alias 指定需删除的别 -keystore 指定keystore – storepass 密码
    -printcert 查看导出的证书信息 keytool -printcert -file g:\sso\michael.crt
  • keypasswd 修改密钥库中指定条目口令 keytool -keypasswd -alias 需修改的别名 -keypass 旧密码 -new 新密码 -storepass keystore密码 -keystore sage
  • storepasswd 修改keystore口令 keytool -storepasswd -keystore g:\sso\michael.keystore(需修改口令的keystore) -storepass pwdold(原始密码) -new pwdnew(新密码)
  • import 将已签名数字证书导入密钥库 keytool -import -alias 指定导入条目的别名 -keystore 指定keystore -file 需导入的证书
  1. 回车,然后会让你输入一些信息,其中秘钥库口令和秘要口令最好输入同一个,并且记下这个口令,其他的随便填即可
    在这里插入图片描述

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

四、tomcat配置https

  1. 把keystore证书上传到你的tomcat服务器上(如果你的tomcat在本地,那么不移动也可以),并记下证书所在路径。

  2. cd到tomcat的conf目录下,打开server.xml文件,搜索https找到下面这项:
    在这里插入图片描述

  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端口访问你的服务了! _
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值