当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > LinuxOPENSSL服务器

Linux服务器
linux下用cron定时执行任务的方法
.htaccess绑定域名到子目录的方法
linux apache下虚拟主机配置方法
apache 局域网访问配置方案
linux Apache服务器系统安全设置与优化
linux中mac地址绑定方法
linux托盘不断闪烁之解决方法
Apache配置 虚拟转向实例
Apache No space left on device的解决办法
Apache rewrite的重写相关的参数说明
LINUX入门级常用命令20条整理
Ubuntu设置开机自动挂载所有格式硬盘分区
5个可能被你忽略的Linux安全设置方法
学习Apache的mod rewrite、access写法
改版时保留原链接,创建新的URL的方法
rsync中文手册之使用rsync实现网站镜像和备份linux
rsync 数据同步使用详解
linux URL的301重定向代码分析
eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
Apache服务器二级域名的完美实现

Linux服务器 中的 LinuxOPENSSL服务器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 45 ::
收藏到网摘: n/a


作者: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