一. 创建tomcat的keystore文件
这里使用JDK自带的keytool工具来创建keystore, 在jdk的安装目录\bin\keytool.exe这个工具,jdk的环境变量设置了之后就可以直接cmd下使用该命令了
在tomcat的conf目录下打开命令行,然后输入以下命令:
keytool -genkey -alias tomcat -keyalg RSA -keystore tomcat.jks -validity 3600 -storepass 123456
其中-validity 是指定证书的有效期,默认是90天,这里设置3600天,即10年
以上命令将在E:\apache-tomcat-7.0.52\conf\目录下生成tomcat.jks
注意:“名字与姓氏”应该是域名,输成了姓名,和真正运行的时候域名不符,可能会出问题
这里我输入的密码是123456, 域名是以tomcat为例
二. 配置tomcat服务器
定位到tomcat服务器的安装目录, 找到conf下的server.xml文件,找到如下已经被注释的代码:
去掉注释,改成
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="E:\apache-tomcat-7.0.52\conf\tomcat.jks"
keystorePass="123456"/>
在互联网上, http协议的默认端口是80, https的默认端口是443, 这里将端口改为了443
注意:如果你使用eclipse部署web项目,你会惊奇的发现每次部署完web项目后,server.xml文件就被还原了,这是因为eclipse上有这个
每当你部署完自己的web项目的时候,eclipse都会将该文件拷贝到tomcat目录的conf目录中进行替换。
因此,我们还需要修改eclipse的Servers项目的server.xml文件即可。
验证
启动tomcat服务器,浏览器中输入: https://localhost
选择继续浏览此网站
搞定,爆红是因为我们生成的证书是自签名的,这个需要浏览器安装一下到受信任的根证书颁发机构即可
那么如何拿到对应的自签名证书呢?
两种方式,第一种通过浏览器下载安装,以Google浏览器为例,敲入地址后, 点击不安全, 继续选择证书
下面直接贴图说明步骤
另一种方式通过命令生成,在tomcat的conf目录下打开cmd窗口,输入下面命令
E:\apache-tomcat-7.0.52\conf>keytool -export -alias tomcat -file tomcat.cer -key store tomcat.jks -storepass 123456
完成后,就会看到该目录下生成的证书文件了。
安装证书
下面打开浏览器的Internet选项 ----> 内容 ----> 证书,或者直接双击打开证书
选择"受信任的根证书颁发机构" ----> 导入证书
导入后,再次浏览https://localhost 就不会爆红了