gpt4 book ai didi

c - 设置 SSL - 初始步骤

转载 作者:太空宇宙 更新时间:2023-11-03 15:01:58 24 4
gpt4 key购买 nike

我正在尝试将我的套接字程序转换为 SSL。我只是在布置初始设置,遇到了一些我不知道如何解决的运行时错误。注意:在与 c 文件相同的目录中有一个名为“my_server.pem”的文件。

谁能帮帮我?谢谢!

#include <openssl/bio.h> // BIO objects for I/O
#include <openssl/ssl.h> // SSL and SSL_CTX for SSL connections
#include <openssl/err.h> // Error reporting

int main(int argc, char *argv[]) {

// data structures for SSL
BIO *bio;
SSL *ssl;
SSL_CTX *ctx;

// initialize openSSL
SSL_load_error_strings();
ERR_load_BIO_strings();
OpenSSL_add_all_algorithms();

// set up the SSL context
ctx = SSL_CTX_new(SSLv23_client_method());

if (ctx == NULL)
fprintf(stderr, "context is null\n");

// load the trust store
if (! SSL_CTX_load_verify_locations(ctx, "my_server.pem", NULL)) {
fprintf(stderr, "Error loading trust store\n");
ERR_print_errors_fp(stderr);
SSL_CTX_free(ctx);
return 0;
}
fprintf(stderr, "made it\n");

//...

return 0;
}

这些是错误信息:

140735285130080:error:02001002:system library:fopen:No such file or directory:bss_file.c:169:fopen('my_server.pem','r')
140735285130080:error:2006D080:BIO routines:BIO_new_file:no such file:bss_file.c:172:
140735285130080:error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib:by_file.c:274:

最佳答案

从错误来看,它似乎无法找到 my_server.pem 文件。即使它与您的 C 代码位于同一位置,当它出现在工作目录中时,您的程序也可以通过其名称访问它。

因此,要么将文件移动到应用程序的工作目录,要么给出指向该文件的文件的相对或绝对路径。

要进一步诊断,请在读取模式下使用 fopen 打开文件,如果失败则查看最后的错误。

如果您的fopen 能够打开该文件,则说明存在其他问题。

关于c - 设置 SSL - 初始步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20449728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com