数字证书 学习笔记
1. 工具准备
1.1 软件下载
JDK acle/technetwork/java/javase/downloads/index.html OPenSSLsourceforge/projects/openssl/files
1.2 环境变量配置
JAVA_HOME : C:\Program Files\Java\jdk1.7.0_07 OpenSSL_HOME :D:\ProgramFiles\openssl Path : %JAVA_HOME%\bin;%OpenSSL_HOME%\bin;......
1.3 环境校验
2. 创建 CA 证书
2.1 创建根证书私钥
openssl genrsa -out rootKey.pem 1024 2.2 创建根证书请求文件 openssl req -new -key rootKey.pem -out
rootReq.csr -text -config opensslf -subj /countryName=CN/stateOrProvinceName=Zhejiang/localityName=Hangzhou/organiz ationName=MyCompany/organizationalUnitName=MyDept/commonName=localhost/ema ilAddress=ca@demo/ # 注:opensslf 文件可在 %OpenSSL_HOME%\bin 目录中到
2.3 对根证书请求文件进行自签名
openssl x509 -req -in rootReq.csr -out rootCrt.pem -sha1 -signkey rootKey.pem -days 3650 -text -extfile opensslf -extensions v3_ca
1
2.4 导出根证书
openssl pkcs12 -export -cacerts -in rootCrt.pem -inkey rootKey.pem -out root.p12
conf3. 创建 Server 证书
3.1 创建 Server 证书私钥
openssl genrsa -out serverKey.pem 1024
3.2 创建 Server 证书请求文件
openssl req -new -key serverKey.pem -out serverReq.csr -text -config opensslf -subj /countryName=CN/stateOrProvinceName=Zhejiang/localityName=Hangzhou/organiz ationName=MyCompany/organizationalUnitName=MyDept/commonName=127.0.0.1/ema ilAddress=server@demo/
3.3 使用 CA 证书对 Server 证书签名
openssl x509 -req -in serverReq.csr -CA rootCrt.pem -CAkey rootKey.pem -CAcreateserial -out serverCrt.pem -days 3650 -text
3.4 导出 Server 证书
openssl pkcs12 -export -clcerts -in serverCrt.pem -inkey serverKey.pem -out server.p12
4. 创建证书库
4.1 创建证书库
keytool -genkeypair -alias tomcat -keyalg RSA -keystore tomcatStore -dname "CN=127.0.0.1,OU=MyDept,O=MyCompany,L=Hangzhou,ST=Zhejiang,C=CN" -keypass 123456 -storepass 123456 4.2 创建证书请求文件 keytool -certreq -keyalg RSA -alias tomcat -file tomcatCrtReq.csr -keystore tomcatStore -storepass 123456
2
4.3 对证书请求文件进行签名
openssl x509 -req -in tomcatCrtReq.csr -CA rootCrt.pem -CAkey rootKey.pem -CAcreateserial -out tomcatCrt.pem -days 3650 4.4 导入 CA 根证书 keytool -import -alias root -keystore tomcatStore -trustcacerts -file rootCrt.pem -storepass 123456
4.5 导入签名后证书
keytool -import -alias tomcat -keystore tomcatStore -file tomcatCrt.pem -storepass 123456
5. Tomcat 中配置 SSL
5.1 单向认证
5.1.1 Openssl 配置 # 修改 %TOMCAT_HOME%\l <Connector protocol="HTTP/1.1" scheme="https" port="8443" maxThreads="150" secure="true" SSLEnabled="true" SSLCertificateFile="../cert/serverCrt.pem" SSLCertificateKeyFile="../cert/serverKey.pem" SSLVerifyClient="none" SSLProtocol="all" /> # 将证书复制到 %TOMCAT_HOME%\cert 目录中 %TOMCAT_HOME% |_ bin |_ cert | |_ serverCrt.pem | |_ serverKey.pem |_ conf |_ lib |_ webapps |_ ..
. # 启动 tomcat 访问 https,如下图: 127.0.0.1:8443/
3
# 导入 CA 根证书 打开 IE -> Internet 选项 ->内容 ->证书 ->受信任的根证书颁发机构 ->导入 ->选择 root.p12 根证书进行导入 ->输入导入密码 ->下一步 ->完成 # 重新访问 tomcat , 如下图所示 IE 地址栏中已不再提示证书错误
5.1.2 keyStore 配置 # 修改 %TOMCAT_HOME%\l <Connector protocol="http11.Http11NioProtocol" scheme="https" port="8443" maxThreads="150" secure="true" SSLEnabled="true" keystoreFile="cert/tomcatStore"
4
keystorePass="123456" clientAuth="false" sslProtocol="TLS" /> # 将证书复制到 %TOMCAT_HOME%\cert 目录中 %TOMCAT_HOME% |_ bin |_ cert | |_ tomcatStore |_ conf |_ lib |_ webapps |_ ... # 启动 tomcat 访问 https,如下图: 127.0.0.1:8443/
# 导入 CA 根证书 打开 IE -> Internet 选项 ->内容 ->证书 ->受信任的根证书颁发机构 ->导入 ->选择 root.p12 根证书进行导入 ->输入导入密码 ->下一步 ->完成 # 重新访问 tomcat , 如下图所示 IE 地址栏中已不再提示证书错误
5
5.2 双向认证
5.2.1 Openssl 配置 # 创建 Client 证书私钥 openssl genrsa -out clientKey.pem 1024 # 创建 Client 证书请求文件 openssl req -new -key clientKey.pem -out clientReq.csr -text -config opensslf -subj /countryName=CN/stateOrProvinceName=Zhejiang/localityName=Hangzhou/organiz ationName=MyCompany/organizationalUnitName=MyDept/commonName=127.0.0.1/ema ilAddress=client@demo/ # 使用 CA 证书对 Client 证书签名 openssl x509 -req -in clientReq.csr -CA rootCrt.pem -CAkey rootKey.pem -CAcreateserial -out clientCrt.pem -days 3650 -text # 导出 Client 证书 openssl pkcs12 -export -clcerts -in clientCrt.pem -inkey clientKey.pem -out client.p12 # 修改 %TO
MCAT_HOME%\l <Connector protocol="HTTP/1.1" scheme="https" port="8443" maxThreads="150" secure="true" SSLEnabled="true" SSLCertificateFile="../cert/serverCrt.pem" SSLCertificateKeyFile="../cert/serverKey.pem"
6
SSLCACertificateFile="../cert/rootCrt.pem" SSLVerifyClient="require" SSLProtocol="all"/> # 将证书复制到 %TOMCAT_HOME%\cert 目录中 %TOMCAT_HOME% |_ bin |_ cert | |_ rootCrt.pem | |_ serverCrt.pem | |_ serverKey.pem |_ conf |_ lib |_ webapps |_ ... # 导入 CA 根证书 打开 IE -> Internet 选项 ->内容 ->证书 ->受信任的根证书颁发机构 ->导入 ->选择 root.p12 根证书进行导入 ->输入导入密码 ->下一步 ->完成 # 导入 Client 证书 打开 IE -> Internet 选项 ->内容 ->证书 ->个人 ->导入 ->选择 client.p12 证书进行导入 ->输入导入密码 ->下一步 ->完成 # 启动 tomcat 访问 https, 如图: 127.0.0.1:8443/
7
5.2.2 keyStore 配置 #创建客户端证书库 keytool -genkeypair -alias client -keyalg RSA -keystore client.p12 -storetype PKCS12 -dname "CN=127.0.0.1,OU=MyDept,O=MyCompany,L=Hangzhou,ST=Zhejiang,C=CN" -keypass 123456 -stor
epass 123456 #导出客户端证书 keytoo
l -export -alias client -keystore client.p12 -storetype PKCS12 -storepass 123456 -rfc - #将客户端证书导入到服务端证书库中 keytool -import -alias client - -keystore tomcatStore -storepass 123456 # 修改 %TOMCAT_HOME%\l <Connector protocol="http11.Http11NioProtocol" scheme="https" port="8443" maxThreads="150" secure="true" SSLEnabled="true" keystoreFile="cert/tomcatStore" keystorePass="123456" truststoreFile="cert/tomcatStore" truststorePass="123456" clientAuth="true" sslProtocol="TLS" /> # 将证书复制到 %TOMCAT_HOME%\cert 目录中 %TOMCAT_HOME% |_ bin |_ cert | |_ tomcatStore |_ conf |_ lib |_ webapps |_ ... # 导入 CA 根证书 打开 IE -> Internet 选项 ->内容 ->证书 ->受信任的根证书颁发机构 ->导入 ->选择 root.p12 根证书进行导入 ->输入导入密码 ->下一步 ->完成 # 导入客户端证书 打开 IE -> Internet 选项 ->内容 ->证书 ->个人 ->导入 ->选择 client.p12 根证书进行导 入 ->输入导入密码 ->下一步 ->完成 # 启动 tomcat 访问 https,如下图:
8
127.0.0.1:8443/
9
附录
A. 常用命令 # 用 CA 证书验证 Server 证书 openssl verify -CAfilerootCrt.pemserverCrt.pem # 查看证书库的内容 keytool -v -list -keystoretomcatStore -storepass 123456 B. 创建数字证书的批处理脚本
创建数字证书批处理脚本.zip
1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论