您的位置:首页 > 运维架构 > Tomcat

证书生成 和Tomcat配置

2015-11-25 11:51 375 查看
证书生成
一、生成服务器端证书

1 .jks文件(tomcat引用文件)数字证书库
keytool –genkey
–keyalg RSA
–dname
"cn=服务器名,
ou=中国未来网络,
o=CDN,
l=南京,
st=江苏,
c=cn"
-alias 别名
-keypass 密码
-keystore 证书库名.jks-storepass 密码
-validity 3650

说明: 利用密钥和证书用具keytool工具生成证书,连贯书写命令不要中间回车空行
参数说明: -keyalg:算法、-dname:唯一判别名、cn:服务器名(一定要设置为域名地址,例如IP地址)、ou:组织单位名、o:组织名、l:城市名、st:省/市/自治区名称、c:国家双字母代码、-alias:别名、–keypass:密码、-keystore:文件名、-validity:有效时间天为单位。
详细参数说明:请在命令行中输入keytool –genkey –help 帮助查询
重要配置: 密码、别名(-alias)、cn的值为域名

命令举例: keytool -genkey -keyalg RSA-dname "cn=192.168.28.211,ou=fnic,o=cdn,l=nanjing,st=jiangsu,c=cn"-alias server -keypass asd123 -keystore server.jks -storepass asd123 -validity3650
(连贯书写)

2 .cer 文件(浏览器必须安装的服务端文件)
keytool -keystore 证书库.jks-export -alias 别名 -storepass 密码 -file 证书名.cer

命令举例:keytool -keystore server.jks -export -alias server-storepass asd123 -file server.cer
(连贯书写)

二、生成客户端证书
1 .p12文件(双向认证时安装文件)
keytool -genkey -keyalg 算法 -dname"cn=服务器名,ou=中国未来网络,o= CDN,l=南京,st=江苏,c=cn" -alias 别名 -storetype 密钥库类型 -keypass 密码 -keystore 证书名.p12 -storepass 密码 -validity 有效天数
参数说明:同服务端证书参数说明
命令举例:keytool -genkey -keyalg RSA -dname "cn=192.168.28.211,ou=fnic,o=cdn,l=nanjing,st=jiangsu,c=cn" -alias custom -storetype PKCS12 -keypass asd123-keystore custom.p12 -storepass asd123 -validity 3650
(连贯书写)

2 .cer文件(为了导入密钥库过度的文件)
keytool -export -alias 别名 -file cer证书名.cer-keystore p12证书名.p12-storepass 密码 –storetype 密钥类型输出样式
命令举例: keytool -export -alias custom -file custom.cer -keystore custom.p12 -storepass asd123 -storetypePKCS12 -rfc
(连贯书写)

三、添加客户端证书到服务器中
命令说明:keytool-import -v -alias 别名 -file cer文件名.cer -keystore 证书库文件名.jks-storepass 密码

命令举例:keytool -import -v -alias custom -file custom.cer -keystore server.jks -storepass asd123
(连贯书写)

根据命令举例完成所有操作总共生成四个文件
server.jks 证书库文件,供tomcat引用
server.cer 浏览器安装该证书到“受信任根证书颁发机构”下
custom.p12 双向认证安装证书到“您的证书”下
custom.cer 过度证书

Tomcat配置
tomcat service.xml , %CATALINA_HOME%/CONF/service.xml
解开注释或者添加代码
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

maxThreads="150" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS"

keystoreFile="D:/server.jks" keystorePass="password"

truststoreFile="D:/server.jks" truststorePass="password"

/>

说明:keystoreFile 服务端证书库文件路径、keystorePass 密码、clientAuth 设置双向认证还是单向认证,clientAuth="true"表示双向认证,clientAuth="false"表示单向认证

web.xml文件<web-app></web-app>中添加强制使用htmls代码:

<login-config>

<auth-method>CLIENT-CERT</auth-method>

<realm-name>Client Cert Users-only Area</realm-name>

</login-config>

<security-constraint>

<web-resource-collection >

<web-resource-name >SSL</web-resource-name>

<url-pattern>/*</url-pattern>

</web-resource-collection>

<user-data-constraint>

<transport-guarantee>CONFIDENTIAL</transport-guarantee>

</user-data-constraint>

</security-constraint>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: