LinuxOPENSSL服务器
点击次数:24 次 发布日期:2008-11-22 09:45:05 作者:源代码网
|
源代码网推荐作者:wind521 源代码网推荐 源代码网推荐概述 源代码网推荐OpenSSL项目是一个合作的项目,开发一个健壮的、商业等级的、完整的开发源代码的工具包,用强大的加密算法来实现安全的Socket层(SecureSocketsLayer,SSLv2/v3)和传输层的安全性(TransportLayerSecurity,TLSv1)。 源代码网推荐这个项目是由全世界的志愿者管理的,他们通过Internet相互交流、制定计划和开发OpenSSL工具包和相关文档。 源代码网推荐 源代码网推荐加密的优势 源代码网推荐数据的保密性 源代码网推荐信息加密就是把纯文本的输入文件用加密算法转换成加密的文件以实现数据的保密。加密的过程需要用到密匙来加密数据然后再解密。没有了密匙,就无法解开加密的数据。数据加密之后,只有密匙要用一个安全的方法传送。加密过的数据可以公开地传送。 源代码网推荐 源代码网推荐数据的一致性 源代码网推荐加密也能保证数据的一致性。例如:加密的校验码,也叫做消息验证码(MessageAuthenticationCode,MAC),能够校验用户提供的加密信息。加密的数据和MAC一起发送给接收者,接收者就可以用MAC来校验加密数据,保证数据没有被窜改过。 源代码网推荐 源代码网推荐安全验证 源代码网推荐加密的另外一个用途是用来作为个人的标识,用户的密匙可以作为他的安全验证的标识。 源代码网推荐 源代码网推荐专利 源代码网推荐各种各样的公司在世界各地拥有各种各样算法的专利。在使用加密算法之前必须检查一下这个算法有没有受到本国专利的限制。下面列出一些受到专利保护的算法(可能不确切): 源代码网推荐 源代码网推荐RSADataSecurity在美国和日本拥有RSA和RC5算法的专利。必须和RSADataSecurity联系以得到许可条例。其主页是:http://www.rsa.com/。 源代码网推荐 源代码网推荐RC4是RSADataSecurity的商标,使用这个标志必须得到RSADataSecurity的许可。 源代码网推荐 源代码网推荐IDEA算法在澳大利亚、法国、德国、意大利、日本、荷兰、西班牙、瑞典、瑞士、英国和美国受专利保护。如果要使用这个算法必须得到许可,其主页是:http://www.ascom.ch/。 源代码网推荐 源代码网推荐注意事项 源代码网推荐 源代码网推荐下面所有的命令都是Unix兼容的命令。 源代码网推荐源路径都为“/var/tmp”(当然在实际情况中也可以用其它路径)。 源代码网推荐安装在RedHatLinux6.1下测试通过。 源代码网推荐要用“root”用户进行安装。 源代码网推荐OpenSSL的版本是0.9.4。 源代码网推荐 源代码网推荐安装软件包需要注意的问题 源代码网推荐最好在编译前和编译后都做一张系统中所有文件的列表,然后用“diff”命令去比较它们,找出其中的差别并知道到底把软件安装在哪里。只要简单地在编译之前运行一下命令“find/*>ssl1”,在编译和安装完软件之后运行命令“find/*>ssl2”,最后用命令“diffssl1ssl2>ssl”找出变化。 源代码网推荐 源代码网推荐软件包的来源 源代码网推荐OpenSSL的主页是:http://www.openssl.org/。 源代码网推荐 源代码网推荐下载:openssl-0.9.4.tar.gz 源代码网推荐 源代码网推荐编译 源代码网推荐把软件包(tar.Z)解压缩: 源代码网推荐 源代码网推荐[root@deep]#cpopenssl_version.tar.gz/var/tmp 源代码网推荐[root@deep]#cd/var/tmp 源代码网推荐[root@deep]#tarxzpfopenssl_version.tar.gz 源代码网推荐 源代码网推荐编译与优化 源代码网推荐转到OpenSSL目录下。 源代码网推荐 源代码网推荐第一步 源代码网推荐 源代码网推荐编辑“c_rehash”文件(vi+11tools/c_rehash),把: 源代码网推荐 源代码网推荐DIR=/usr/local/ssl 源代码网推荐 源代码网推荐改为: 源代码网推荐 源代码网推荐DIR=/usr 源代码网推荐 源代码网推荐这个改变是使编译和安装OpenSSL时用“/usr”这个默认目录。 源代码网推荐 源代码网推荐第二步 源代码网推荐 源代码网推荐在默认情况下OpenSSL把Perl程序的目录设置为“/usr/local/bin/perl”目录。必须改变所有脚本中的“#!/usr/local/bin/perl”这一行,因为在RedHatLinux中Perl的路径是“/usr/bin”。用下面的命令: 源代码网推荐 源代码网推荐[root@deep]#perlutil/perlpath.pl/usr/bin(whereyourperlprogramreside). 源代码网推荐 源代码网推荐第三步 源代码网推荐 源代码网推荐为了成功编译OpenSSL,必须知道函数库所在的路径。用下面的命令设置PATH环境变量: 源代码网推荐 源代码网推荐[root@deep]#exportLD_LIBRARY_PATH=`pwd` 源代码网推荐 源代码网推荐设置编译器的编译参数: 源代码网推荐 源代码网推荐CC="egcs" 源代码网推荐./Configurelinux-elf-DSSL_FORBID_ENULL 源代码网推荐--prefix=/usr 源代码网推荐--openssldir=/etc/ssl 源代码网推荐 源代码网推荐注意:因为安全方面的原因要禁止“不加密”,所以“-DSSL_FORBID_ENULL”参数是必须的。 源代码网推荐 源代码网推荐编辑“Makefile.ssl”文件(vi+52Makefile.ssl),加入: 源代码网推荐 源代码网推荐CFLAG=-DTHREADS-D_REENTRANT-DSSL_FORBID_ENULL-DL_ENDIAN-DTERMIO-O9-funroll-loops-ffast-math-malign-double-mcpu=pentiumpro-march=pentiumpro-fomit-frame-pointer-fno-exceptions-Wall-DSHA1_ASM-DMD5_ASM-DRMD160_ASM 源代码网推荐 源代码网推荐这是编译OpenSSL的优化参数。 源代码网推荐 源代码网推荐编辑“Makefile.ssl”文件(vi+77Makefile.ssl),加入: 源代码网推荐 源代码网推荐PROCESSOR=686 源代码网推荐 源代码网推荐注意:如果CPU是Pentium,用586表示,PentiumPro/II/III用686,486用486。 源代码网推荐 源代码网推荐[root@deep]#make-fMakefile 源代码网推荐[root@deep]#maketest 源代码网推荐[root@deep]#makeinstall 源代码网推荐[root@deep]#mv/etc/ssl/misc/*/usr/bin/ 源代码网推荐[root@deep]#rm-rf/etc/ssl/misc/ 源代码网推荐[root@deep]#rm-rf/etc/ssl/lib/ 源代码网推荐[root@deep]#rm-f/usr/bin/CA.pl 源代码网推荐[root@deep]#rm-f/usr/bin/CA.sh 源代码网推荐[root@deep]#install-m644libRSAglue.a/usr/lib/ 源代码网推荐[root@deep]#install-m644rsaref/rsaref.h/usr/include/openssl/ 源代码网推荐[root@deep]#strip/usr/bin/openssl 源代码网推荐[root@deep]#mkdir-p/etc/ssl/crl 源代码网推荐 源代码网推荐“make-f”命令编译OpenSSL函数库(libcrypto.a和libssl.a)以及OpenSSL的二进制文件“openssl”。编译完之后函数库在顶层目录,二进制程序在“apps”子目录。成编译之后,“maketest”测试函数库是否正常。最后,“makeinstall”安装OpenSSL。 源代码网推荐 源代码网推荐“mv”命令把“/etc/ssl/misc”目录下的所有文件移到“/usr/bin”目录下。因为在我们的系统中所有的二进制文件都在“/usr/bin”目录下,所以要把二进制文件都移到这个目录下。 源代码网推荐 源代码网推荐“rm”命令删除“/etc/ssl/misc”和“/etc/ssl/lib”目录,因为这个目录中的文件都在别的地方了。“CA.pl”和“CA.sh”文件是小的脚本文件用来创建CA认证。这个脚本和“opensslca”命令相关,而且有一些奇怪的要求。在默认情况下,OpenSSL的配置不能很容易地使用“opensslca”。所以我们后面会用“sign.sh”脚本来替换它们。 源代码网推荐 源代码网推荐清除不必要的文件 源代码网推荐 源代码网推荐[root@deep]#cd/var/tmp 源代码网推荐[root@deep]#rm-rfopenssl-version/openssl_version.tar.gz 源代码网推荐 源代码网推荐“rm”命令删除所有的编译和安装OpenSSL软件所需的源文件,并把OpenSSL软件的压缩包删除。 源代码网推荐 源代码网推荐配置 源代码网推荐可以到这去下载“floppy.tgz”文件:http://pages.infinit.net/lotus1/doc/opti/floppy.tgz。把“floppy.tgz”文件解开之后,可以在相应的目录下发现我们在这本书中介绍的所有软件的配置文件。这样就没有必要手工重新生成这些文件,或者用拷贝粘贴的方法把它们粘贴到配置文件中去。不管是打算自己动手生成配置文件还是拷贝现成的,你都要学会自己修改配置文件并且把配置文件拷贝到正确的目录下。下面将具体说明。 源代码网推荐 源代码网推荐为了运行OpenSSL服务器,必须创建或者把下面的文件拷贝到相应的目录下: 源代码网推荐 源代码网推荐l把“openssl.cnf”文件拷贝到“/etc/ssl”目录下 源代码网推荐 源代码网推荐l把“sign.sh”文件拷贝到“/usr/bin”目录下 源代码网推荐 源代码网推荐可以把“floppy.tgz”解压之后,找到上面列出来的文件,并拷贝到相应的目录下,或者用拷贝粘贴的方法从本书中直接粘贴出。 源代码网推荐 源代码网推荐配置“/etc/ssl/openssl.cnf”文件 源代码网推荐这是openssl程序总的配置文件,可以配置密匙的过期时间、公司的名称、地址,等等。需要改变得配置在[CA_default]和[req_distinguished_name]这两个section里。 源代码网推荐 源代码网推荐编辑“openssl.cnf”文件(vi/etc/ssl/openssl.cnf),加入并改变: 源代码网推荐 源代码网推荐#OpenSSLexampleconfigurationfile. 源代码网推荐#Thisismostlybeingusedforgenerationofcertificaterequests. 源代码网推荐# 源代码网推荐RANDFILE=$ENV::HOME/.rnd 源代码网推荐oid_file=$ENV::HOME/.oid 源代码网推荐oid_section=new_oids 源代码网推荐#Tousethisconfigurationfilewiththe"-extfile"optionofthe 源代码网推荐#"opensslx509"utility,nameherethesectioncontainingthe 源代码网推荐#X.509v3extensionstouse: 源代码网推荐#extensions= 源代码网推荐#(Alternatively,useaconfigurationfilethathasonly 源代码网推荐#X.509v3extensionsinitsmain[=default]section.) 源代码网推荐[new_oids] 源代码网推荐#WecanaddnewOIDsinhereforuseby"ca"and"req". 源代码网推荐#AddasimpleOIDlikethis: 源代码网推荐#testoid1=1.2.3.4 源代码网推荐#Oruseconfigfilesubstitutionlikethis: 源代码网推荐#testoid2=${testoid1}.5.6 源代码网推荐#################################################################### 源代码网推荐[ca] 源代码网推荐default_ca=CA_default#Thedefaultcasection 源代码网推荐#################################################################### 源代码网推荐[CA_default] 源代码网推荐dir=/etc/ssl#Whereeverythingiskept 源代码网推荐certs=$dir/certs#Wheretheissuedcertsarekept 源代码网推荐crl_dir=$dir/crl#Wheretheissuedcrlarekept 源代码网推荐database=$dir/ca.db.index#databaseinde源代码网供稿. |
