资源描述
SSL双向认证证书制作流程
——含单向SSL
一、 证书制作:
1、 生成服务器密钥(库):
keytool -genkey -alias server -keyalg RSA -keysize 2048 -validity 3650 -dname "CN=localhost,OU=DTY,O=BMC,L=Beijing,ST=Beijing,C=CN" -keypass 123456 -keystore server.jks -storepass 123456
CN:要签名[域名]或[IP](阐明:此处为要配备SSL服务器IP或域名)
OU:组织单位名称,如:[公司注册简称]
O:组织名称,如:[公司英文全称]
L:都市或地区名称,如:[Beijing]
ST:州或省份名称,如:[Beijing]
C:单位两字母国家代码,如:[CN]
2、 验证生成服务器密钥(库):
keytool -list -v -keystore server.jks -storepass 123456
3、 为环节1生成服务器密钥(库)创立自签名证书:
keytool -selfcert -alias server -keystore server.jks -storepass 123456
4、 验证生成服务器密钥(库):
keytool -list -v -keystore server.jks -storepass 123456
5、 导出自签名证书:
keytool -export -alias server -keystore server.jks -file server.cer -storepass 123456
阐明:此证书为后续要导入到浏览器中受信任根证书颁发机构。
6、 生成客户端密钥(库):
阐明:keytool –genkey命令默认生成是keystore文献,但为了能顺利导入到IE或其她浏览器中,文献格式应为PKCS12。
稍后,此P12文献将导入到IE或其她浏览器中。
keytool -genkey -alias client -keyalg RSA -keysize 2048 -validity 3650 -dname "CN=localhost,OU=DTY,O=BMC,L=Beijing,ST=Beijing,C=CN" -storetype PKCS12 -keypass 123456 -keystore client.p12 -storepass 123456
CN:要签名[域名]或[IP](特别阐明:这里是客户端机构域名或IP)
OU:组织单位名称,如:[公司注册简称]
O:组织名称,如:[公司英文全称]
L:都市或地区名称,如:[Beijing]
ST:州或省份名称,如:[Beijing]
C:单位两字母国家代码,如:[CN]
7、 提取客户端密钥公钥:
只有客户端密钥库文献还不行,还需要一种证书文献。毕竟证书文献才是直接提供应外界公钥凭证,因而需要将客户端密钥库文献中公钥导入到某个证书文献中。
keytool -export -alias client -keystore client.p12 -storetype PKCS12 -rfc -file client.cer -storepass 123456
8、 将客户端密钥库公钥导入到服务端密钥库中:
keytool -import -v -file client.cer -keystore server.jks -storepass 123456
9、 验证生成服务器密钥(库):
keytool -list -v -keystore server.jks -storepass 123456
阐明:验证环节8公钥与否导出成功。
二、 证书导入:
1、 导入客户端密钥(库):
a) 对于IE浏览器,选取Internet选项,则显示如下:
b) 点击证书按钮,显示如下:
c) 点击导入,显示如下:
d) 点击下一步,显示如下:
注意:选取文献时,必要确认文献格式为:
e) 点击下一步,并在密码处键入,创立[客户端密钥(库)]时所键入密码,这里是123456:
f) 选取下一步,显示如下:
选取[将所有证书放入下列存储(P)]为:个人,然后点击下一步,显示如下:
g) 单击完毕,显示如下:
单击拟定,自此[客户端密钥(库)]导入浏览器操作完毕。
2、 导入服务器密钥(库)受信任根证书:
a) 对于IE浏览器,选取Internet选项,则显示如下:
b) 点击证书按钮,显示如下:
c) 点击导入,显示如下:
d) 点击下一步,显示如下:
e) 选取要导入文献,这里咱们选取环节5导出server.cer证书,单击下一步显示如下:
f) 选取奖所有证书放入下列存储:收信人根证书颁发机构,点击下一步,显示如下:
g) 单击完毕,显示如下:
h) 由于咱们是一种自签名证书,因此windows会给出上面安全提示,选取“是”,显示如下:
单击拟定,自此[服务器密钥(库)受信任根证书]导入浏览器操作完毕。
三、 服务器配备SSL:
阐明,服务器配备SSL因应用服务器不同,其配备办法也不同样,这里仅以tomcat6为例:
1、 配备双向SSL:
a) 将服务器密钥(库)文献放置在[%TOMCATE_HOME%/onf]下:
b) 修改配备文献[%TOMCATE_HOME%/onf/server.xml]详细配备如下:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="conf/server.jks" keystorePass="123456"
truststoreFile="conf/server.jks" truststorePass="123456" />
参数阐明:
clientAuth
如果想要Tomcat为了使用这个socket而规定所有SSL客户出示一种客户证书,置该值为true。
keystoreFile
如果创立keystore文献不在Tomcat以为缺省位置(一种在Tomcat运营home目录下叫.keystore文献),则加上该属性。可以指定一种绝对途径或依赖$CATALINA_BASE环境变量相对途径。
keystorePass
如果使用了一种与Tomcat预期不同keystore(和证书)密码(changeit),则加入该属性。
keystoreType
如果使用了一种PKCS12 keystore,加入该属性。有效值是JKS和PKCS12。
sslProtocol
socket使用加密/解密合同。如果使用是SunJVM,则不建议变化这个值。据说IBM1.4.1版TLS合同实现和某些流行浏览器不兼容。这种状况下,使用SSL。
ciphers
此socket容许使用被逗号分隔密码列表。缺省状况下,可以使用任何可用密码。
algorithm
使用X509算法。缺省为Sun实现(SunX509)。对于IBM JVMS应当使用ibmX509。对于其他JVM,参照JVM文档取对的值。
truststoreFile
用来验证客户证书trustStore文献。
truststorePass
访问trustStore使用密码。缺省值是keystorePass。
truststoreType
如果使用一种不同于正在使用KeyStoreTrustStore格式,加入该属性。有效值是JKS和PKCS12。
2、 配备单向SSL:
a) 修改配备文献[%TOMCATE_HOME%/onf/server.xml]详细配备如下:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="conf/server.jks" keystorePass="123456" keystoreType="JKS" />
b) 单向证书制作过程描述:
一、 证书制作——环节[1、2、3、4、5]
二、 证书导入——环节[2]
四、 补充:
对于证书安装,在实际使用中普通可以提供一种连接容许顾客下载证书。如下图红框所示:
展开阅读全文