https网站的配置,需要**库文件,但**库文件如何生成呢?
如何让浏览器客户端信任服务器证书呢?下面来解答这两个疑问。
一、通过keytool可以生成自签名证书和服务器的**库文件。
1、生成服务器**库文件server.jks
C:>keytool -genkey -alias server -keyalg RSA -keystore server.jks -validity 3650
输入**库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: 192.168.51.6
您的组织单位名称是什么?
[Unknown]: 00
您的组织名称是什么?
[Unknown]: 00
您所在的城市或区域名称是什么?
[Unknown]: 00
您所在的省/市/自治区名称是什么?
[Unknown]: 01
该单位的双字母国家/地区代码是什么?
[Unknown]: CN
CN=192.168.51.6, OU=00, O=00, L=00, ST=01, C=CN是否正确?
[否]: Y
输入 <webserver> 的**口令
(如果和**库口令相同, 按回车):
注意:“您的名字与姓氏是什么?”此处必须填写服务器的IP地址。
原因在上篇“https的工作原理”中提到过:“浏览器验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等)”
注意:该方式生成的jks文件,在chrome浏览器下访问服务器 仍有安全提示,可通过增加jks扩展参数解决,命令如下:
keytool -genkey -alias webserver -keypass 11111111 -keyalg RSA -keysize 1024 -validity 365 -keystore c:\server.jks -storepass 11111111 -ext san=ip:192.168.x.x
2、通过server.jks导出服务器证书server.cer
C:>keytool -export -alias server -file server.cer -keystore 192.168.51.6.jks
输入**库口令:
存储在文件 <192.168.51.6.cer> 中的证书
二、服务端配置秘钥库server.jks
在tomcat下,配置server.xml如下:
<Connector SSLEnabled="true" enableLookups="true" keystoreFile="keystore/server.jks" keystorePass="***" maxThreads="500" port="8088"
protocol="org.apache.coyote.http11.Http11Protocol" scheme="https" secure="true" sslProtocol="TLS" URIEncoding="UTF-8" />
此处***是**库口令,要与生成server.jks时输入的口令保持一致。
三、浏览器客户端导入服务器证书server.cer
双击server.cer,如下图,然后根据“安装证书”向导完成证书安装。
安装完成后,在IE浏览的“受信任的根证书颁发机构”中可以看到该证书。
注意:有的设备上会将该证书安装到“中级证书颁发机构”中,对于该情况,在server.cer的安装过程中,需要选择下安装路径。