[英]Setting Up SSL - Initial steps
我正在尝试将套接字程序转换为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
能够打开文件,则还有其他问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.