显示标签为“SSL”的博文。显示所有博文
显示标签为“SSL”的博文。显示所有博文

2007年9月6日星期四

openssl编译小结

呵呵,看得再多,不如自己动手做一下。网上讲的都很好:)

格式大多如下:
2、下载ActivePerl-5.8.0.806-MSWin32-x86并安装:
3、下载 openssl0.98并解压。
安装步骤:完全可以参照openssl目录下的install.win32
1、perl Configure VC-WIN32
如不成功会有明显提示
2、ms\do_ms
推荐使用这种方式
另外两种方式 如果使用也必须保证本机有编译器才能使用。
:ms\do_masm (默认vc 自带的编译器;也也以自己下载安装)
:ms\do_nasm (需要自己下载)
3、DOS窗口下转到【Microsoft Visual Studio】\VC98\bin目录下执行 vcvars32.bat以配置环境变量。
4、跳到openssl目录下,执行:
nmake -f ms\ntdll.mak
如果编译成功,最后的输出都在out32dll目录下:包括可执行文件、两个dll和两个lib文件: libeay32.dll, libeay32.lib, ssleay32.dll, ssleay32.lib
5、 打开VC-Tools-Options-Directores,在Include files中增加【openssl-0.9.8】\inc32目录;在Libray files中增加【openssl-0.9.8】\out32dll
目-〉属性-〉连接-〉输入-〉ssleay32.lib libeay32.lib
在相关目录下增加libeay32.dll, libeay32.lib

有的还有如下说明:

注意:在运行第五步时,cl编译器会抱怨说.\crypto\des\enc_read.c文件的read是The POSIX name for this item is deprecated(不被推荐的),建议使用_read。呵呵,我可不想将OpenSSL中的所有的read函数修改为_read。再看cl的错误代码 error C2220,于是上MSDN上查找:
warning treated as error - no object file generated
/WX tells the compiler to treat all warnings as errors. Since an error occurred, no object or executable file was generated.
是由于设置了/WX选项,将所有的警告都作为错误对待,所以。。。
其实这个WX选项可以不删,因为我用VS2005编译,对C++支持非常好。


另外一个就是,网上教的都是如何编译动态库,难道就不能静态么?
我们发现,在第三步之后,ms目录下的.mk文件有两个,nt.mak 和ntdll.mk。常识使用nt.mk进行生成,果然编译成为静态库!

而且,WX不删除,照样编译没有问题 :)

尽信书不如无书 :)

openssl学习小总结(编译使用)

老 师给我关于openssl方面的材料有快两个星期了,从最初的一无所知,终于在网络的大海洋中找到了自己想要的一点东西,但最初还是懵懵懂懂,因为网上的 一些东西跟opensslforwin.pdf这个全英文文章中的内容不大相同。终于,把这个英文文章翻译了一半(因为后面部分讲解命令的使用),然后再 找自己需要的东西,才发现原来这些东西并不是像想象中的那么难,最主要的只是自己是个门外汉。现将自己的一点心得总结如下:

以下以文章代表opensslforwin.pdf的内容:

1、openssl的编译:
编译有两种方法:一种是网上的,一种是文章中的。
网上的:
1 安装vc6.0 路径为默认都为默认路径。

2 下载 ActivePerl-5.8.0.806-MSWin32-x86 并安装

3下载 openssl0.96i 解压到根目录下 。如c:
(我开始下载的是最新的.97a,但最后编译时候n_pkey.c老是出问题的)

开始安装:
1) > perl Configure VC-WIN32
: 如不成功会有明显提示
2) > ms\do_ms
: 推荐使用这种方式,我第一次成功编译就是在这种方式下
:另外两种方式 如果使用也必须保证本机有编译器才能使用。
: > ms\do_masm (默认vc 自带的编译器;也也以自己下载安装)

: ms\do_nasm (需要自己下载) :


3)转到C:\Program Files\Microsoft Visual Studio\VC98\bin目录(默认安装时)下
执行 vcvars32.bat 以配置环境变量。

4)跳到openssl目录下
执行> nmake -f ms\ntdll.mak
:如果编译成功,最后的输出都在out32dll目录下 : 包括可执行文件 、两个dll和两个lib文件。
文章中的:
1 安装vc6.0 路径为默认都为默认路径。

2 下载 ActivePerl-5.8.0.806-MSWin32-x86 并安装

3下载 openssl0.96i 解压到根目录下 。如c:
(我开始下载的是最新的.97a,但最后编译时候n_pkey.c老是出问题的)
4下载msvc,将其解压到openssl的目录下,下载地址为:http://www.infosecurity.org.cn/forum/read.php?fid=11&tid=301&page=1,要知道这个是针对openssl0.9.7e/f的。

1) > perl Configure VC-WIN32
: 如不成功会有明显提示
2) > ms\do_ms
: 推荐使用这种方式,我第一次成功编译就是在这种方式下
:另外两种方式 如果使用也必须保证本机有编译器才能使用。
: > ms\do_masm (默认vc 自带的编译器;也也以自己下载安装)

: ms\do_nasm (需要自己下载) :


3)转到C:\Program Files\Microsoft Visual Studio\VC98\bin目录(默认安装时)下
执行 vcvars32.bat 以配置环境变量。
4)这时需要使用msvc来进行链接编译:
(1)打开visual c++ 6.0,File->Open Workspace,这时会出现一个对话框,选择要打开的workspace,这时就选择.../openssl-0.9.7e/msvc097/openssl.dsw
(2)点击Build->Batch Build...出现一个对话框如下:
点击Rebuild All。将会进行编译。里面可能会出现几个关于REQ和OCSP方面的错误,adylee说这个可以不用担心。因为我也是一个初学者,所以想可以学得多一点会了解的更多,会知道原因的。所以也就没有过于追究。
完成以后,别忘了把生成所的可执行文件所在的目录,如:C:\openssl0.9.7e\out32dll\release加入到系统环境变量中,这样的话可以在任何目录下来使用这些应用程序。
使用方法如下:
openssl 产生keypair方法

openssl genrsa –out privatekey.pem 1024

Generates a 1024 bit RSA private key and writes it into the file privatekey.pem. The PEM format is widely used for storing keys, certificates etc..

openssl rsa –in privatekey.pem -pubout –out publickey.pem

Generates the corresponding RSA public key and writes it in publickey.pem.

可能是版本问题,感觉文章中说的很多方法并不能直接运行,需要进行少许的修改,但我还是感觉看这个文章还是很有用处的。

Windows下Openssl安装以及编程

Windows下Openssl安装以及编程
1、安装VC++ 6.0。
2、下载ActivePerl-5.8.0.806-MSWin32-x86并安装:
3、下载 openssl0.98并解压。
安装步骤:完全可以参照openssl目录下的install.win32
1、perl Configure VC-WIN32
如不成功会有明显提示
2、ms\do_ms
推荐使用这种方式
另外两种方式 如果使用也必须保证本机有编译器才能使用。
:ms\do_masm (默认vc 自带的编译器;也也以自己下载安装)
:ms\do_nasm (需要自己下载)
3、DOS窗口下转到【Microsoft Visual Studio】\VC98\bin目录下执行 vcvars32.bat以配置环境变量。
4、跳到openssl目录下,执行:
nmake -f ms\ntdll.mak
如果编译成功,最后的输出都在out32dll目录下:包括可执行文件、两个dll和两个lib文件: libeay32.dll, libeay32.lib, ssleay32.dll, ssleay32.lib
5、 打开VC-Tools-Options-Directores,在Include files中增加【openssl-0.9.8】\inc32目录;在Libray files中增加【openssl-0.9.8】\out32dll
目-〉属性-〉连接-〉输入-〉ssleay32.lib libeay32.lib
在相关目录下增加libeay32.dll, libeay32.lib

Windows下Openssl安装以及编程

Windows下Openssl安装以及编程

必备条件:

1、安装VC++ 6.0

2、下载ActivePerl-5.8.0.806-MSWin32-x86并安装:

http://www.sogoz.info/down.asp?id=3683&no=1

3、下载 openssl0.98并解压。

http://www.openssl.org/source/openssl-0.9.8.tar.gz

安装步骤:完全可以参照openssl目录下的install.win32

1perl Configure VC-WIN32

如不成功会有明显提示

2ms\do_ms

推荐使用这种方式

另外两种方式 如果使用也必须保证本机有编译器才能使用。

:ms\do_masm (默认vc 自带的编译器;也也以自己下载安装)

:ms\do_nasm (需要自己下载)

3DOS窗口下转到【Microsoft Visual Studio\VC98\bin目录下执行 vcvars32.bat 以配置环境变量。

4、跳到openssl目录下,执行:

nmake -f ms\ntdll.mak

如果编译成功,最后的输出都在out32dll目录下:包括可执行文件、两个dll和两个lib文件: libeay32.dll, libeay32.lib, ssleay32.dll, ssleay32.lib

注意:在运行第五步时,cl编译器会抱怨说.\crypto\des\enc_read.c文件的read是The POSIX name for this item is deprecated(不被推荐的),建议使用_read。呵呵,我可不想将OpenSSL中的所有的read函数修改为_read。再看cl的错误代码 error C2220,于是上MSDN上查找:
warning treated as error - no object file generated
/WX tells the compiler to treat all warnings as errors. Since an error occurred, no object or executable file was generated.
是由于设置了/WX选项,将所有的警告都作为错误对待,所以。。。




编程初步:

1、 打开VCTools-Options-Directores,在Include files中增加【openssl-0.9.8\inc32目录;在Libray files中增加【openssl-0.9.8\out32dll

2、 在源程序中包含以下三个头文件并加入LIB

#include
#include

#include

#pragma comment(lib, "libeay32.lib")

#pragma comment(lib, "ssleay32.lib")

3、 参考源码开始编程:http://www.kennethballard.com/Download/intro-openssl.zip

error C2059 种种

error C2059 种种

发布者:许超  发表日期:2007-02-07 15:13:23.09



一日遇到C2059错误,google搜索发现C2059的错误表现有多种。

这里整理一些以及自己遇到的情况,供大家借鉴解决。

第一种:


int main )
{
}

它会引起C2059错误,错误信息:error C2059: syntax error : )

第二种:

#include
#define TEST
int main(int argc, char* argv[])
{
#ifdef TEST
printf(\nTEST defined %d, TEST);
#else
printf(\nTEST not defined);
#endif

return 0;
}

它也会引起C2059错误,错误信息:error C2059: syntax error : )

另外一种:

struct ag_type
{
int a;
float b;
};

void func(ag_type arg = {5, 7.0});

它也会引起C2059错误,错误信息:error C2059: syntax error : ) 还会附带error C2143:。

第三种,也是本人遇到的,

刚开始,比较怪异,现象:

1 使用openssl库,在另一个工程里,ok,没问题。

2 在出问题工程里,不在.h文件出现 #include ,ok,正常。

3 在出问题工程里,在.h文件出现 #include 立即出现C2059错误。

此时,在openssl路径配置正确情况下,在某一.h文件只写入

#include

会出现error C2059: syntax error : constant 错误。

解决:

经仔细研究,对比,试验,发现,openssl的头文件有顺序之分。加入下面句子,即

正常。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

根据经验,这是一例头文件互耦比较严重的问题,遇到此种情况,需调整.h文件

出现序列即可解决此类C2059问题。

总结:人们在设计各种规则的同时,隐含的也设计出来了各种烦恼。

人们就是既要享受这些规则带来的好处,也要经受问题的刁扰。

经验告诉我们,利大于弊。

2007年8月19日星期日

SSL技术专题

SSL技术专题

Secure socket layer(SSL)协议最初由Netscape企业发展,现已成为网络用来鉴别网站和网页浏览者身份,以及在浏览器使用者及网页服务器之间进行加密通讯 的全球化标准。由于SSL技术已建立到所有主要的浏览器和WEB服务器程序中,因此,仅需安装数字证书,或服务器证书就可以激活服务器功能了。

SSL原理篇
SSL原理解密
SSL/TLS/WTLS原理
SSL是如何工作的?
SSL基本结构的集中管理
SSL通讯安全代理简介
SSL和数字证书服务慨述(1)
SSL和数字证书服务慨述(2)
SSL和数字证书服务慨述(3)
SSL和数字证书服务慨述(4)
SSL和数字证书服务慨述(5)
SSL配置篇
如何在Red Hat 7.1中配置SSL
用SSL构建一个安全的Apache
在 WebSphere Application Server 中配置 SSL
如何制作 SSL X.509 凭证?
如何在SSL内加密任意TCP连接
Apache安装MOD_SSL的补充--手工签署证书的方法
Linux OPENSSL 服务器
用JSSE定制SSL连接
安全连接方式SSL
SSL代理客户端使用
SSL应用及相关文章
用SSL安全协议实现WEB服务器的安全性
利用SSL给IIS加把锁(一)
利用SSL给IIS加把锁(二)
利用SSL给IIS加把锁(三)
SSL的安全漏洞及解决方案
SSL证书管理
SSL认证机构是干什么的,在电子商务中如何实现?
SSL使安全设备的互动和管理更安全
SSL中间人攻击
Internet Explorer SSL 加密缺陷
网络交易协定SSL漏洞百出