查看公钥证书是否过期的C语言代码示例
时间: 2023-11-04 14:04:11 浏览: 144
基于python检查SSL证书到期情况代码实例
以下是使用 OpenSSL 库编写的示例代码,用于检查公钥证书是否过期:
```c
#include <openssl/x509.h>
#include <openssl/pem.h>
#include <time.h>
int main(int argc, char *argv[]) {
if (argc != 2) {
printf("Usage: %s cert_file\n", argv[0]);
return 1;
}
FILE *fp = fopen(argv[1], "r");
if (!fp) {
printf("Failed to open file %s\n", argv[1]);
return 1;
}
X509 *cert = PEM_read_X509(fp, NULL, NULL, NULL);
fclose(fp);
if (!cert) {
printf("Failed to read certificate\n");
return 1;
}
time_t now = time(NULL);
if (now < X509_get_notBefore(cert) || now > X509_get_notAfter(cert)) {
printf("Certificate expired or not yet valid\n");
return 1;
}
printf("Certificate is valid\n");
return 0;
}
```
该程序接受一个参数,即要检查的证书文件名。它首先打开该文件,然后使用 OpenSSL 库中的 PEM_read_X509 函数读取证书。接着,它获取当前时间,并使用 X509_get_notBefore 和 X509_get_notAfter 函数获取证书的有效期限。最后,它将当前时间与证书的有效期限进行比较,如果证书已过期或尚未生效,则输出错误消息并返回 1;否则输出成功消息并返回 0。
阅读全文