这里是二级证书验证, 注意CRL撤销证书必须由二级证书撤销, 顶级证书可以撤销, 并且命令行不会出错, 但是无法验证出.
/*
openssl ca -config CM.cfg -revoke badcert.pem
openssl ca -config CM.cfg -gencrl -out crl.pem
cat certs/root.pem certs/mfg.pem crl.pem >revoke.pem
openssl verify -CAfile revoke.pem -crl_check certs/badcert.pem
*/
void static verifyCert()
{
//error 7 at 1 depth lookup:certificate signature failure
//error 8 at 0 depth lookup:CRL signature failure
OpenSSL_add_all_algorithms();
X509_STORE *store = X509_STORE_new();
X509_STORE_set_verify_cb(store, cb);
//error 2 at 1 depth lookup:unable to get issuer certificate
X509_STORE_add_cert(store, loadX509(PATH"certs/root.der"));
//error 20 at 0 depth lookup:unable to get local issuer certificate
X509_STORE_add_cert(store, loadX509(PATH"certs/mfg.pem"));
//error 23 at 0 depth lookup:certificate revoked
X509_STORE_add_crl(store, loadX509Crl(PATH"crl.pem"));
X509_STORE_set_flags(store, X509_V_FLAG_CRL_CHECK);
X509_STORE_CTX *ctx = X509_STORE_CTX_new();
X509 *xDevice = loadX509(PATH"certs/device.pem");
X509_STORE_CTX_init(ctx, store, xdevice, NULL);
if (X509_verify_cert(ctx) > 0)
{
printf("OK\n");
}
X509_STORE_CTX_free(ctx);
X509_STORE_free(store);
}
分享到:
相关推荐
在IT行业中,安全通信是至关重要的,而OpenSSL是一个强大的安全工具套件,它提供了用于创建和管理公钥基础设施(PKI)的核心功能,包括证书的生成、签名、验证等。本文将深入探讨如何在Linux环境下使用OpenSSL命令来...
在这个场景中,我们要探讨如何利用openssl和curl库来获取HTTPS服务端证书,这有助于我们验证服务器的身份和建立安全连接。 首先,openssl是一个强大的安全套接字层密码库,包含了各种主要的密码算法、常用的密钥和...
【openssl生成证书】知识点详解 在IT领域,OpenSSL是一个强大的安全套接字层密码库,包含各种主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用程序用于测试或其他目的。生成证书是网络...
在网络安全中,OpenSSL 是一个强大的安全套接层 (SSL) 工具包,它包含了各种用于处理加密通信所需的工具,包括生成证书、密钥以及执行加密操作。本文将详细介绍如何使用 OpenSSL 创建和管理CA证书、服务器证书和...
其中,证书扮演着验证服务器身份的角色。本教程将深入探讨如何利用开源工具openssl创建自定义的证书颁发机构(CA),并实现将CA证书安装到浏览器的受信任根证书存储区,以供自定义网络服务使用。 首先,我们需要...
OpenSSL是一个开源的库,包含了各种加密算法,它提供了生成SSL证书的功能。本教程将详细介绍如何使用OpenSSL在Windows环境下为Nginx服务器配置HTTPS服务,以及如何生成和管理SSL证书。 首先,了解SSL证书的作用。...
OpenSSL 是一个强大的安全套接层(SSL)和传输层安全(TLS)协议实现库,同时也包含了一系列加密、散列和伪随机数生成算法。它广泛应用于网络服务器、客户端应用程序,以及开发安全通信协议的软件中。在IT行业中,...
OpenSSL 是一个强大的安全套接层 (SSL) 和 Transport Layer Security (TLS) 库,它提供了各种加密算法、证书操作、哈希函数等,广泛应用于网络通信的安全保障。在C++编程中,开发者经常会利用OpenSSL库来实现HTTPS...
OpenSSL 是一个强大的安全套接层(SSL)和传输层安全(TLS)协议实现库,同时也包含了一系列加密算法、证书工具和其他相关功能。在IT领域,OpenSSL 被广泛用于处理数字证书,包括解析、生成和管理各种类型的证书文件...
在这个“openssl生成的证书demo”中,我们将探讨如何使用OpenSSL生成证书、证书签名请求(CSR)以及自签名的根证书权威(CA),并理解这些组件在安全通信中的作用。 首先,我们来了解什么是证书。在SSL/TLS协议中,...
### Openssl与数字证书 #### 一、加密算法概述 **加密算法**是信息安全领域中的关键技术之一,主要用于保护数据在传输过程中的安全性和完整性。按照密钥的不同,加密算法主要可以分为两大类:**对称加密**和**非...
此外,你还可以设置证书验证级别,如`context.verify_mode = ssl.CERT_REQUIRED`,要求必须有证书;`ssl.CERT_OPTIONAL`则允许没有证书,但如果有,会进行验证。 总结,通过Python和OpenSSL,我们可以创建、管理SSL...
Java调用OpenSSL生成证书是一种常见的安全操作,用于创建数字证书,这些证书在网络安全中扮演着重要角色,例如HTTPS通信、服务器身份验证等。在这个过程中,我们通常会使用OpenSSL命令行工具,然后通过Java程序来...
**OpenSSL库与ECDSA签名验证** OpenSSL是一个开源项目,提供了一系列强大的加密和证书管理功能,广泛应用于网络通信安全领域。它包含了多种加密算法,其中包括椭圆曲线数字签名算法(ECDSA)。ECDSA是基于椭圆曲线...
SSL协议通过安装服务器证书来激活,使得数据信息在客户端和服务器之间安全传输,防止数据泄露,并允许用户通过服务器证书来验证网站的真实性。 X.509证书是SSL证书的核心组成部分,通常涉及三种类型的文件:key...
OpenSSL 命令生成证书和自签名 OpenSSL 是一个免费的开放源代码密码学库,提供了各种加密算法和协议的实现。使用 OpenSSL 命令可以生成证书和自签名,以下是相关知识点的总结: 一、预安装准备 在开始使用 ...
openSSL是一个开源的加密库,可以生成数字证书、密钥和加密算法。它广泛应用于网络安全领域,例如HTTPS、SSL/TLS、加密通信等。 证书文件生成 要生成证书文件,我们需要使用openSSL提供的命令和工具。下面是生成...
openSSL是目前最流行的开源加密库之一,它提供了安全的数据传输和认证机制。在Web应用程序中,openSSL广泛应用于生成数字证书和私钥,从而确保数据的安全传输。今天,我们将详细介绍如何使用openSSL生成证书以及在...
3. **数字签名和证书验证**:OpenSSL支持证书链的验证,确保服务器的身份可信,防止中间人攻击。 4. **哈希计算**:MD5和SHA系列的哈希函数,用于生成数据的唯一标识,常用于文件校验或用户密码的存储。 5. **...