https双向认证时证书签发和配置

1、生成CA自签文件

1.1  在openssl-0.9.8h-1-bin\bin进入cmd窗口

或者 cmd窗口路径到openssl-0.9.8h-1-bin\bin下

1.2

ras的秘钥长度:2048

存放ca公钥证书的路径:D:/cert_test/root_ca/ca_cert.pem

证书的有效期(天): 3650

根证书配置文件:D:/jx_cert/conf/gen_ca.conf 根据自己的需要调整配置文件的私钥证书证书存放路径,颁发者名称等

openssl req -x509 -newkey rsa:2048 -out D:/cert_test/root_ca/ca_cert.pem -outform PEM -days 3650 -config "D:/jx_cert/conf/gen_ca.conf"

执行此命令需要设置根证书密码

本次测试设置的密码是:test

运行完成1.1和1.2会生成ca_cert.pem和ca_private_key.pem这两个文件

2、 生成tomcat.jks证书

tomcat.jsk证书存放路径:D:\cert_test\service\tomcat.jks

tomcat.jks证书密码:cert_test

颁发者名称(需要和配置名字的颁发者名称一样):QTHD_CMBC_SMZF

命令行进入jre根目录,执行

keytool -keystore D:\cert_test\service\tomcat.jks -keypass cert_test -storepass cert_test -alias tomcat -genkey -keyalg RSA -dname "CN=127.0.0.1, OU=servers, O=QTHD_CMBC_SMZF"

运行该命令后会生成tomcat.jks文件,在tomcat/bin目录service.xml配置Https需要使用到该证书

生成的jks文件如下:

3、根据tomcat.jks证书生成服务器请求证书

tomcat.jks证书存放路径:D:\cert_test\service\tomcat.jks

tomcat.jks证书密码:cert_test

serverreq.pem证书存放路径:D:\cert_test\service\serverreq.pem

keytool -keystore D:\cert_test\service\tomcat.jks -keypass cert_test -storepass cert_test -alias tomcat -certreq -file D:\cert_test\service\serverreq.pem

运行该命令后会生成serverreq.pem文件

4、CA签署服务器证书

serverreq.pem证书存放路径:D:\cert_test\service\serverreq.pem

servercert.pem证书存放路径:D:\cert_test\service\servercert.pem

qthd_ca.conf配置文件存放路径:D:\jx_cert\qthd_ca\qthd_ca.conf 根据需要调整配置文件的信息

需在D:\cert_test目录下新建newcerts文件夹,需把index和serial放进D:\test目录下

openssl ca -in D:\cert_test\service\serverreq.pem -out D:\cert_test\service\servercert.pem -config "D:\jx_cert\conf\ca.conf"

执行此命令需要输入根证书密码,并且需要同意签署证书和同意请求认证提交

5、导入CA证书到keystore

tomcat.jks证书存放路径:D:\cert_test\service\tomcat.jks

tomcat.jks证书密码:cert_test

ca公钥证书路径:D:/cert_test/root_ca/ca_cert.pem

keytool -keystore D:\cert_test\service\tomcat.jks -keypass cert_test -storepass cert_test -alias ca -import -trustcacerts -file D:/cert_test/root_ca/ca_cert.pem

执行此命令需要同意信任此证书

6、导入服务器证书到keystore

tomcat.jks证书路径:D:\cert_test\service\tomcat.jks

tomcat.jks证书密码:cert_test

servercert.pem证书存放路径:D:\cert_test\service\servercert.pem

keytool -keystore D:\cert_test\service\tomcat.jks -keypass cert_test  -storepass cert_test -alias tomcat -import -file D:\cert_test\service\servercert.pem

执行此命令可能会提示证书回复已安装在密钥库中,继续执行下一步即可

7、查看keystore受信列表

keytool -keystore D:\cert_test\service\tomcat.jks -keypass cmbc_smzf -storepass cert_test  -list -v

8、将CA证书导入到受信keystore

truststore.jks证书路径:D:\cert_test\service\truststore.jks

truststore.jks证书密码:cert_test

ca公钥证书路径:D:\cert_test\root_ca\ca_cert.pem

keytool -keystore D:\cert_test\service\truststore.jks -keypass cert_test  -storepass cert_test  -alias ca -import -trustcacerts -file D:\cert_test\root_ca\ca_cert.pem

执行此命令时需要同意信任此证书,并且会生成truststore.jks证书

9、tomcat配置https

需要在tomcat/conf目录下调整service.xml文件

A、注释掉<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

B、在两个Connector中间添加

<Connector SSLEnabled="true" acceptCount="100" className="org.apache.coyote.http11.Http11Protocol"
     clientAuth="true" connectionTimeout="30000" disableUploadTimeout="true" enableLookups="true"
     keepAliveTimeout="30000" keystoreFile="D:\https\apache-tomcat-7.0.78\conf\ssl\tomcat.jks"
     keystorePass="cert_test" maxIdleTime="60000" maxSpareThreads="100" maxThreads="350"
     minSpareThreads="30" port="8443" scheme="https" secure="true" sslProtocol="TLS"
     truststoreFile="D:\https\apache-tomcat-7.0.78\conf\ssl\truststore.jks" truststorePass="cert_test"/>

本文中路径如下,按自己实际路径填写 :

tomcat.jks路径:D:\https\apache-tomcat-7.0.78\conf\ssl\tomcat.jks

tomcat.jks密码:cert_test

truststore.jks路径:D:\https\apache-tomcat-7.0.78\conf\ssl\truststore.jks

truststore.jks密码:cert_test

配置完成启动tomcat,并且访问服务:https://localhost:8443/。访问时如果提示此网站无法提供安全连接,说明tomcat配置https完成,请完成以下步骤,生成p12证书再次访问。

10、创建客户端秘钥

客户端key.pem路径:D:\cert_test\certs\lzq_testKey.pem

客户端req.pem路径:D:\cert_test\certs\lzq_testreq.pem

颁发者名称:ZAOMZ_CA

openssl req -newkey rsa:2048 -keyout D:\cert_test\certs\testKey.pem -keyform PEM -out D:\cert_test\certs\testreq.pem -outform PEM -subj "/O=ZAOMZ_CA/OU=ZAOMZ_CA/CN=qthd_test" -config "D:\jx_cert\openssl-0.9.8h-1-bin\share\openssl.cnf"

执行此命令会生成lzq_testKey.pem和lzq_testreq.pem

11、签发个人证书

客户端req.pem路径:D:\cert_test\certs\lzq_testreq.pem

客户端cert.pem路径:D:\cert_test\certs\lzq_testreqcert.pem

ca配置文件路径:D:\jx_cert\conf\ca.conf

openssl ca -in D:\cert_test\certs\testreq.pem -out D:\cert_test\certs\testreqcert.pem -config "D:\jx_cert\conf\ca.conf"

执行此命令时需要输入根证书密码:test

并且同意两个条件

12、制作个人p12证书

cert.pem文件路径:D:\cert_test\certs\lzq_testreqcert.pem

key.pem文件路径:D:\cert_test\certs\lzq_testKey.pem

p12证书路径:D:\cert_test\p12\lzq_test.p12

openssl pkcs12 -export -in D:\cert_test\certs\lzq_testreqcert.pem -inkey D:\cert_test\certs\lzq_testKey.pem -out D:\cert_test\p12\lzq_test.p12 -name lzq_test -chain -CAfile "D:\cert_test\root_ca\ca_cert.pem"

执行此命令需要输入三次密码。

到这里p12证书已经生成完成了,双击p12证书进行安装,安装时候需要输入证书密码:lzqtest,再次访问https://localhost:8443/,选择已经按照的p12证书即可

注:

如果只需要生成p12证书,请一直重复第10、11、12步骤

时间: 2024-08-13 13:11:02

https双向认证时证书签发和配置的相关文章

rails+apache2+passenger+ssl实现https双向认证通信

rails+apache2+passenger+ssl实现https双向认证通信 环境: 系统:Centos7 服务器:apache(httpd) 2.4.6 制作工具:openssl 1.0.1 Rails版本 :4.1.6 准备工作: 安装apache和openssl #yum install  httpd  httpd-devel httpd-tools #yum install openssl 安张mod_ssl #yum install mod_ssl 一.创建根证书 1创建CA私钥

nginx与ios实现https双向认证

服务端配置 nginx关键配置如下: listen 443; server_name localhost; ssl on; ssl_certificate /usr/local/opt/nginx/certificates/server.cer; ssl_certificate_key /usr/local/opt/nginx/certificates/server.key.pem; ssl_client_certificate /usr/local/opt/nginx/certificates

利用tomcat服务器配置https双向认证

首先请保证已经安装好jdk,并且环境变量以及配置好了 第一步.为服务器生成证书: 使用toolkey为tomcat生成证书,假定目标机器的域名为localhost,使用如下命令生成:keytool –genkey –v –aliaslocalhost_server RSA –keystore localhost_server.store  –validity 36500 第二步.为客户端生成证书: 为浏览器生成证书,以便让服务器来验证它.为了能保证证书顺利导入至IE和Firefox,证书格式应该

HTTPS 双向认证构建移动设备安全体系

HTTPS 双向认证构建移动设备安全体系 对于一些高安全性要求的企业内项目,我们有时希望能够对客户端进行验证.这个时候我们可以使用Https的双向认证机制来实现这个功能. 单向认证:保证server是真的,通道是安全的(对称密钥):双向认证:保证client和server是真的,通道是安全的(对称密钥): 要实现这么一个完整的安全体系,需要一个CA或者openssl自建CA来管理签发客户端证书.作为项目要求的场景可能是这样的,一个前端网站专门用于签发证书,通过电子邮件发送下载客户端证书邮件到移动

tomcat https双向认证

没啥可写的,直接看这些博文吧... 注:server.xml 双向认证 注意得配:truststoreFile,单向不用 浏览器客户端p12证书,需要添加到服务器的jks文件中. http://www.blogjava.net/stevenjohn/archive/2012/08/22/385989.html http://www.360doc.com/content/10/0401/23/633992_21237818.shtml http://www.blogjava.net/stevenj

Android Https双向认证 + GRPC

keywords:android https 双向认证android GRPC https 双向认证 ManagedChannel channel = OkHttpChannelBuilder.forAddress("xxx",yyy) .overrideAuthority("zzz") .sslSocketFactory(sslFactory) .build(); 1.千万不要像官网案例那样设置setPlaintext(true),这个是设置明文,我们用的是密文

ASIHTTPRequest实现https双向认证请求

什么是双向认证呢?简而言之,就是服务器端对请求它的客户端要进行身份验证,客户端对自己所请求的服务器也会做身份验证.服务端一旦验证到请求自己的客户端为不可信任的,服务端就拒绝继续通信.客户端如果发现服务端为不可信任的,那么也中止通信. 双向认证的算法理论是RSA,(点击此处了解RSA算法原理). 双向认证具体又是通过安全证书的方式来实现的,安全证书可用openssl或java程序来生成,用于双向认证的安全证书中保存了密钥对,证书颁发机构信 息,签名信息,签名算法,颁发对象,有效期等信息.双向认证中

tomcat构建HTTPS双向认证

第一步:为服务器生成证书 # keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/ac/web/tomcat.keystore -validity 36500 (参数简要说明:"/etc/tomcat.keystore"含义是将证书文件保存在路径/usr/local/ac/web/下,证书文件名称是tomcat.keystore :"-validity 36500"含义是证书有效期,36500

AFNetWorking https 双向认证

客户端验证服务端证书: 需要http配置路径需要域名 1:先项目中倒入服务端证书 sever.cer, 2.然后设置 AFSecurityPolicy self.manager = [AFHTTPRequestOperationManager manager]; self.manager.responseSerializer = [[AFHTTPResponseSerializer alloc] init]; [self.manager.requestSerializer setValue:@"