tomcat https 配置
本文简单的记录下tomcat下https的配置。
在实际的系统中,很少会直接在tomcat上配置https对外提供服务,一般是通过在nginx上配置https接入,转发给内部tomcat服务器时转换为http。具体可参考http://www.cnblogs.com/zhjh256/p/6262620.html。
配置tomcat的https,秘钥证书生成,直接使用java安装时自带的keytool即可。
建议把相关证书和key放在$TOMCAT_HOME/security
下,便于统一管理。
建议命名规范为:
ca-key.pem
一般来说是CA证书的rsa私钥文件
ca.pem
可信Certificate Authority (CA)证书,通常内部通信的话,可以自签名,通过openssl req -new -x509生成。
client-cert.pem
客户端公钥证书(一般HTTPS不用,浏览器会自动管理,但是自行开发的客户端就需要了,比如java rpc,jdbc客户端)*
client-key.pem
客户端私钥(一般HTTPS不用,浏览器会自动管理*,但是自行开发的客户端就需要了,比如java rpc,jdbc客户端)
server-cert.pem
服务器公钥证书,必须由拥有它的CA认证
server-key.pem
服务器私钥
tomcat https 配置 操作步骤
1.1 配置tomcat 操作
D:\Java\jdk1.8.0_102\bin>keytool
密钥和证书管理工具
命令:
-certreq 生成证书请求
-changealias 更改条目的别名
-delete 删除条目
-exportcert 导出证书
-genkeypair 生成密钥对
-genseckey 生成密钥
-gencert 根据证书请求生成证书
-importcert 导入证书或证书链
-importpass 导入口令
-importkeystore 从其他密钥库导入一个或所有条目
-keypasswd 更改条目的密钥口令
-list 列出密钥库中的条目
-printcert 打印证书内容
-printcertreq 打印证书请求的内容
-printcrl 打印 CRL 文件的内容
-storepasswd 更改密钥库的存储口令
开始:
D:\Java\jdk1.8.0_102\bin>keytool -genkey -alias tomcat -keyalg RSA
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: localhost #这里的名称很重要,建议使用官网的地址
您的组织单位名称是什么?
[Unknown]: zjw
您的组织名称是什么?
[Unknown]: zjw
您所在的城市或区域名称是什么?
[Unknown]: zz
您所在的省/市/自治区名称是什么?
[Unknown]: zz
该单位的双字母国家/地区代码是什么?
[Unknown]: cn
CN=localhost, OU=zjw, O=zjw, L=zz, ST=zz, C=cn是否正确?
[否]: y
输入 <tomcat> 的密钥口令
(如果和密钥库口令相同, 按回车):
完毕后会在当前目录下,会在$HOME
下(比如C:\Users\
)产生一个.keystore
文件,将它拷贝到tomcat
的bin
目录下。
D:\apache-tomcat-7.0.69\bin>keytool -selfcert -alias tomcat -keystore .keystore
输入密钥库口令:
D:\apache-tomcat-7.0.69\bin>keytool -export -alias tomcat -keystore .keystore -storepass tomcat -rfc -file tomcat.cer
存储在文件 <tomcat.cer> 中的证书
此时会在D:\apache-tomcat-7.0.69\bin>
下生成tomcat.cer
证书文件。将该文件发给使用者,让他们安装该证书,并将证书安装在“受信任的根证书颁发机构”区域中。
1.2 配置tomcat
打开$CATALINA_BASE/conf/server.xml
找到SSL HTTP/1.1 Connector
那一块,取消注释并将它改成:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="bin/.keystore" keystorePass="tomcat"
clientAuth="false" sslProtocol="TLS" />
修改windows
机器的host
文件,增加一行:
127.0.0.1 localhsot
接下来重启tomcat,用https://localhost:8443/访问网站验证一下就行了。