一、证书设置
1、生成密钥
-genkeypair 生成密钥-keyalg 指定密钥算法,这时指定RSA,
-keysize 指定密钥长度,默认是1024位,这里指定2048,最好长一点
-siglag 指定数字签名算法,这里指定为SHA1withRSA算法
-validity 指定证书有效期,我这里指定36500天
-alias 指定别名,这里是cas.server.com
-keystore 指定密钥库存储位置,这里存在d盘
-dname 指定用户信息,不用一个一个回答它的问题了;
**注意:CN=域名,我们采用test.sso.com **
keytool -genkeypair -keyalg RSA -keysize 2048 -sigalg SHA1withRSA -validity 36500 -alias test.sso.com -keystore d:/keys/tomcat.keystore
输入上述命令,密钥库口令输入123456,然后回车,就在d盘keys文件夹下生成了tomcat.keystore文件;
2、生成证书
keytool -exportcert -alias test.sso.com -keystore d:/keys/tomcat.keystore -file d:/keys/tomcat.cer -rfc
3、导入cacerts证书
**注意:导入证书之前首先要把对应jdk路径下的cacerts删除
keytool -import -alias test.sso.com -keystore %JAVA_HOME%\jre\lib\security\cacerts -file d:/keys/tomcat.cer -trustcacerts
回车后输入密码为 changeit并同意导入;
如果导入出现:非法选项: Files\Java\jdk1.8.0_111\jre\lib\security\cacerts,那么需要首先进入到 %JAVA_HOME%\jre\lib\security目录下,在执行以下代码:
keytool -import -alias test.sso.com -keystore cacerts -file d:/keys/tomcat.cer -trustcacerts
如果出现:keytool 错误: java.io.FileNotFoundException: cacerts (拒绝访问。),
那么:找到java的文件夹,改为完全控制即可。
4、常用命令
//查看cacerts中的证书列表
keytool -list -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit
//删除cacerts中指定名称的证书
keytool -delete -alias test.sso.com -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit
二、Tomcat设置
打开$CATALINA_HOME/conf/server.xml,增加
<Connector protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/usr/local/certificate/tomcat.keystore" keystorePass="123456" port="8443" />
port一般为8443或443,最常用的是443端口(https默认端口),
这样https方式访问的时候可以不加端口号(如:https://test.sso.com);
keystoreFile为tomcat目录下的密钥文件;
keystorePass为私钥密码;truststoreFile为生成的信任文件,