分享
 
 
 

OpenSSLFAQ

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

OpenSSL

-

经常问到的问题

--------------------------------------

*

目前的

OpenSSL

的版本是什么?

*

文档在哪里?

*

我怎样和

OpenSSL

的开发人员联系?

*

要使用

OpenSSL

我需要申请专利许可证吗?

*

OpenSSL

线程安全吗?

*

为什么我收到

"PRNG

not

seeded"

这样的错误信息?

*

为什么链接器抱怨说有未定义的符号?

*

我在哪里能得到编译好了的

OpenSSL

版本?

*

我在

Windows

下编译了一个程序,可它崩溃了:为什么?

*

怎样使用ASN1的函数读写DER编码的缓冲区?

*

我想使用

这样的宏,但却给我一个错误,为什么?

*

我调用了

但是却失败了,为什么?

*

我的错误输出只是一大堆数字,它们是什么意思?

*

为什么我收到什么未知算法的错误信息?

*

怎么创建证书或者认证请求?

*

我为什么不能创建认证请求?

*

为什么

会因为证书认证错误而失败?

*

为什么我与使用OpenSSL的服务器联接的时候总是只能使用弱加密?

*

我怎样才能创建DSA证书?

*

为什么我不能和一台使用DSA证书的服务器建立SSL联接?

*

我怎么才能删除一个私钥上的口令保护?

*

为什么OpenSSH

configure

脚本不能检测到

OpenSSL?

*

为什么

OpenSSL

测试带着

"bc:

command

not

found"

信息失败?

*

为什么

OpenSSL

测试带着

"bc:

1

no

implemented信息失败?

*

为什么

OpenSSL

Alpha

True64

Unix

上编译失败?

*

为什么

OpenSSL

带着"ar:

command

not

found"

这样的错误信息编译失败?

*

目前的

OpenSSL

的版本是什么?

目前的版本可以从获得.OpenSSL

0.9.6

2000

9

24

日发布.

除了当前的稳定版本以外,你还可以获取

OpenSSL

的每日开发快照,在

,或者你也可以通过匿名

CVS

访问

获取.

*

文档在哪里?

OpenSSL

是一个库,它为类似安全

web

服务器这样的应用提供加密功能.

请仔细阅读你想用的应用的文档.INSTALL

文件解释了如何安装这个库的问题.

OpenSSL

包含一个可以用于执行加密功能的命令行工具.在

openssl(1)

手册页

里有描述.给开发人员使用的文档正在写.有几个手册页已经可以用了;libcrypto

libssl

库的概述在

crypto(3)

ssl(3)的手册页里描述.

OpenSSL

手册页安装在

/usr/local/ssl/man

(或者你象

INSTALL

里描述的那样声明

的另外一个目录).另外,你可以在阅读大多数

当前版本的文档.

有关

libcrypto

里面的部件的更多内容,你可以阅读

Ariel

Glenn

的关于

SSLeay

0.9

的文档,它是

OpenSSL

的前身,它的文档在

那些文档中有许多仍然适用于

OpenSSL.

doc/openssl.txt

里有一些关于证书扩展和

PKCS#12

的文档.

最早的

SSLeay

的文档放在

OpenSSL

doc/ssleay.txt

里.如果其他的资源都

不能帮助你的话,那么它也许有用,不过你一定要知道它反映的是过时的

SSLeay

0.6.6

的版本.

*

我怎样和

OpenSSL

的开发人员联系?

README

文件描述了如何向

OpenSSL

提交臭虫报告和补丁.OpenSSL

邮件列表

的信息可以在

获得.

*

要使用

OpenSSL

我需要申请专利许可证吗?

README

文件的专利(patent)段列出了你使用OpenSSL时可能要遵循的专利.

请咨询一位律师获取关于版权的信息.OpenSSL

开发组不提供法律建议.

你可以配置你的

OpenSSL

不使用

RC5

IDEA.用下面的命令:

./config

no-rc5

no-idea

*

OpenSSL

线程安全吗?

是(有一个局限:一次

SSL

联接不能使用多线程进行并发).在

Windows

和许多

Unix

系统上,OpenSSL

自动使用标准库的多线程版本.如果你的平台不是这些平台

之一,请参考

INSTALL

文件.

多线程应用必须给

OpenSSL

提供两个回调函数.这些都在

thread(3)

手册页里描述.

*

为什么我收到

"PRNG

not

seeded"

这样的错误信息?

加密软件需要一个非周期的数据源才能正确运转.

许多开放源码的操作系统提供一个"随机设备"为这个用途服务.而在其他系统上,

应用在生成密钥或者执行公钥加密之前必须用合适的数据调用

RAND_add()或

RAND_seed()函数.

有些有缺陷的应用不做这件事.到版本

0.9.5,OpenSSL

里面的需要随机数

的函数如果在随机数发生器没有收到一个128位的随机值就会报一个错误.

如果出现这个错误,请与你使用的应用的作者联系.很可能是他/她就没有正确

使用这些东西.OpenSSL

0.9.5

和以后的版本会拒绝执行那些有潜在的不安全加密

的动作,以此把错误显示出来.

在没有

/dev/urandom

的系统上,使用熵收集守护(Entropy

Gathering

Demon)

也是一个好计策);参阅

RAND_egd()

的手册页获取细节.

大多数

openssl

的命令行工具会试图使用文件

$HOME/.rnd

(或者

$RANDFILE,

--如果设置了这个环境变量)用做产生

PRNG

种子.如果这个文件不存在或者太短,

就有可能出现那个

"PRNG

not

seeded"

错误信息.

[

OpenSSL

0.9.5

的用户注意了:版本0.9.5的命令"openssl

rsa"

并不做这件事,并且在那些没有

/dev/urandom

的系统上用口令加密一个

RSA密钥时会失效!这是一个库里面的臭虫;请使用更高版本的软件.]

对于

Solaris

2.6

而言,Tim

Nibbe

和另外一些人建议

安装

SUNski

包.该包来自

Sun

补丁

105710-01

(Sparc),它会增加一个

/dev/random

设备并确保其投入使用,通常是通过

$RANDFILE.其他

Solaris

版本也可能有类似补丁.不过,我们必须警告你

/dev/random

通常是一个块设备,

这一点可能对

OpenSSL

有些影响.

*

为什么链接器抱怨说有未定义的符号?

可能是因为编译中断了,而且

make

没有认识到还缺少某些东西.运行

"make

clean;

make".

如果你用的是

./Configure

而不是

./config,请确信你选用了正确的目标机器.

在不同的

OS

版本之间的文件格式可能有些许区别(比如

sparcv8/sparcv9,

或者

a.out/elf).

如果你看到的错误信息包含下面的符号,请使用

"no-asm"

配置选项,

就象

INSTALL

里描述的那样:

BF_cbc_encrypt,

BF_decrypt,

BF_encrypt,

CAST_cbc_encrypt,

CAST_decrypt,

CAST_encrypt,

RC4,

RC5_32_cbc_encrypt,

RC5_32_decrypt,

RC5_32_encrypt,

bn_add_words,

bn_div_words,

bn_mul_add_words,

bn_mul_comba4,

bn_mul_comba8,

bn_mul_words,

bn_sqr_comba4,

bn_sqr_comba8,

bn_sqr_words,

bn_sub_words,

des_decrypt3,

des_ede3_cbc_encrypt,

des_encrypt,

des_encrypt2,

des_encrypt3,

des_ncbc_encrypt,

md5_block_asm_host_order,

sha1_block_asm_data_order

如果这些东西都不能帮你解决问题,那你可以试试当前的快照(源程序).

如果问题依旧,请提交一个错误报告.

*

我在哪里能得到编译好了的

OpenSSL

版本?

有些使用

OpenSSL

的应用是以二进制的形式发布的.当使用这样的应用时,

你不需要自己安装

OpenSSL;该应用会包含所需要的部分(比如,DLL)

如果你想在

Windows

系统上安装

OpenSSL,但是你没有

C

编译器,请阅读

INSTALL.W32

里的

"mingw32"

节,获取如何获取和安装自由的

GNU

C

编译器的信息.

许多

Linux

*BSD

发布版带有

OpenSSL.

*

我在

Windows

下编译了一个程序,可它崩溃了:为什么?

通常是因为你忽略了

INSTALL.W32

里的注解.你必须和多线程版本的

VC++

运行时间

DLL

库链接,否则冲突会导致程序崩溃:通常是在第一次

BIO

相关的读写操作的时候.

*

怎样使用ASN1的函数读写DER编码的缓冲区?

你有两个选择.一个是用一个内存BIO和

i2d_XXX_bio()或

d2i_XX_bio()一起使用,

另一个是你可以直接使用

i2d_XXX(),d2i_XXX()

函数.

因为这个问题是最常见的导致痛苦的问题,所以我们在这里包含了一个使用PKCS7

的代码片段做例子:(靠,我花了整整一周读程序才找到方法,眼前一黑...)

unsigned

char

*buf,

*p;

int

len;

len

=

i2d_PKCS7(p7,

NULL);

buf

=

OPENSSL_malloc(len);

/*

or

Malloc,

error

checking

omitted

*/

p

=

buf;

i2d_PKCS7(p7,

&p);

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有