用keytool制作证书并在tomcat配置https服务(一)

https分为单项认证和双向认证。

一般https页面上的访问都是单项认证,服务端发送数字证书给客户端,客户单方面验证。而服务端不做验证。

而双向认证,需要双方都有证书,然后发送给对方进行验证。一般用于企业应用对接。

准备工作:

1.首先使用cmd进入到jdk的keytool工具目录下,我的路径D:\Program Files (x86)\jdk1.8.0_77\jre\bin,之后的keytool语句就在cmd执行。

2.在D盘创建个ssl文件夹。

开始:

1.服务端创建密钥对及密钥库。

keytool -genkey -alias tomcat -keypass 123456 -keyalg RSA -keysize 2048 -validity 365 -storetype JKS -keystore D:/ssl/keystore.jks -storepass 123456

回车之后会显示如图,这第一条信息一般写域名或IP地址,然后下边的信息可以根据自己情况写。我这里就不写域名了,直接写的jinzhiming。

 然后我们看一下密钥库里的信息

keytool -list -v -keystore D:/ssl/keystore.jks

回车输入密码后

我们的密钥对已经生成了。

然后我们去配置下tomcat,我用的tomcat7,tomcat8可能会和本配置不同,请自行查找配置方法。

找到tomcat的server.xml

添加如下配置:

            <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               keystoreFile="D:/ssl/keystore.jks"
               keystorePass="123456"
               truststoreFile="D:/ssl/keystore.jks"
               truststorePass="123456"
               clientAuth="false" sslProtocol="TLS" />

注意:clientAuth="false",这个参数值如果为true为双向认证,false为单项认证,我们用false。

启动tomcat访问下https://localhost:8443看下

这样就可以了。至于证书风险,是因为证书不在浏览器的“受信任的根证书颁发机构”造成的。安装后就不显示。

猜你喜欢

转载自www.cnblogs.com/jinzhiming/p/10791372.html