Windows 7 在Windows 7中使用OpenSSL时出现的问题
我注意到在Windows XP Professional和Windows 7 Professional上安装OpenSSL之间存在一些问题。对于OSS,我从闪光灯制作网站下载了<代码> Win32 OpenSSL V1.0.0D< <代码>和<代码> Visual C++ 2008 可重新分发二进制文件。两台机器均已安装,没有任何问题。但是,在Windows 7计算机上,我在使用OpenSSL exe和API时遇到了以下问题:Windows 7 在Windows 7中使用OpenSSL时出现的问题,windows-7,openssl,Windows 7,Openssl,我注意到在Windows XP Professional和Windows 7 Professional上安装OpenSSL之间存在一些问题。对于OSS,我从闪光灯制作网站下载了 Win32 OpenSSL V1.0.0D< 和 Visual C++ 2008 可重新分发二进制文件。两台机器均已安装,没有任何问题。但是,在Windows 7计算机上,我在使用OpenSSL exe和API时遇到了以下问题: 在MS-DOS命令提示符下,我尝试使用 openssl x509 -req -in roo
- 在MS-DOS命令提示符下,我尝试使用
openssl x509 -req -in rootreq.pem -sha1 -extensions v3_ca -signkey rootkey.pem -out rootcert.pem
无法写入随机状态
。Windows XP运行良好
- 我使用OpenSSL API编译了一个简单的SSL web服务器,但是当我尝试使用
Loading 'screen' into random state - done
connect: No such file or directory
connect:errno=0
Windows XP再次得到了更好的响应。如果你看我附加的代码,看起来第二个BIO_do_accept从未被调用
有人知道问题出在哪里吗?在Windows 7上安装时是否需要执行其他步骤
仅供参考-我也尝试在Windows7上安装64位二进制文件,但得到了相同的结果。我真的需要在我的Windows7机器上安装并运行它,所以非常感谢您的帮助
/////////////////// Code ///////////////////////////////////
// Simple OpenSSL Webserver
// Compiler : MSVS 2010 Professional
// Language: C / C++
int main(int argc, char *argv[])
{
BIO *acc, *client;
SSL *ssl;
SSL_CTX *ctx;
THREAD_TYPE tid;
init_OpenSSL( );
seed_prng( );
ctx = setup_server_ctx( );
acc = BIO_new_accept(PORT);
printf ("BIO_new_accept\n");
if (!acc)
int_error("Error creating server socket");
if (BIO_do_accept(acc) <= 0)
int_error("Error binding server socket");
printf ("BIO_do_accept\n");
for (;;)
{
if (BIO_do_accept(acc) <= 0)
int_error("Error accepting connection");
printf ("BIO_do_accept2\n");
client = BIO_pop(acc);
printf ("BIO_pop\n");
if (!(ssl = SSL_new(ctx)))
int_error("Error creating SSL context");
printf ("SSL_new\n");
SSL_set_bio(ssl, client, client);
printf ("SSL_set_bio\n");
THREAD_CREATE(tid, (void *)server_thread, ssl);
}
SSL_CTX_free(ctx);
BIO_free(acc);
return 0;
}
//code///////////////////////////////////
//简单OpenSSL Web服务器
//编译:MSVS2010专业版
//语言:C/C++
int main(int argc,char*argv[])
{
BIO*acc,*客户;
SSL*SSL;
SSL_CTX*CTX;
螺纹型tid;
init_OpenSSL();
seed_prng();
ctx=设置\服务器\ ctx();
acc=BIO_new_accept(端口);
printf(“BIO_new_accept\n”);
如果(!acc)
int_错误(“创建服务器套接字时出错”);
如果(BIO_do_accept(acc)我成功地使用MinGW-w64平台构建了我的OpenSSL应用程序(适用于x86和x64窗口),而且我还遇到了一些关于闪灯二进制文件的问题
设置起来很容易,有一些说明和一个示例应用程序在谢谢你的回答。我发现最好的方法是自己编译所有的东西。我在下面的网站上找到了一个很好的教程-当你点击命令提示符右键单击并点击以管理员身份运行,应该可以解决你的问题>你是说第一次调用BIO_do_accept()会导致错误吗?谢谢你的回答。我发现最好的方法是自己编译所有内容。我在下面的网站上找到了一个很好的教程-
/////////////////// Code ///////////////////////////////////
// Simple OpenSSL Webserver
// Compiler : MSVS 2010 Professional
// Language: C / C++
int main(int argc, char *argv[])
{
BIO *acc, *client;
SSL *ssl;
SSL_CTX *ctx;
THREAD_TYPE tid;
init_OpenSSL( );
seed_prng( );
ctx = setup_server_ctx( );
acc = BIO_new_accept(PORT);
printf ("BIO_new_accept\n");
if (!acc)
int_error("Error creating server socket");
if (BIO_do_accept(acc) <= 0)
int_error("Error binding server socket");
printf ("BIO_do_accept\n");
for (;;)
{
if (BIO_do_accept(acc) <= 0)
int_error("Error accepting connection");
printf ("BIO_do_accept2\n");
client = BIO_pop(acc);
printf ("BIO_pop\n");
if (!(ssl = SSL_new(ctx)))
int_error("Error creating SSL context");
printf ("SSL_new\n");
SSL_set_bio(ssl, client, client);
printf ("SSL_set_bio\n");
THREAD_CREATE(tid, (void *)server_thread, ssl);
}
SSL_CTX_free(ctx);
BIO_free(acc);
return 0;
}