歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

LinuxOPENSSL服務器

  作者:wind521    概述   OpenSSL項目是一個合作的項目,開發一個健壯的、商業等級的、完整的開發源代碼的工具包,用強大的加密算法來實現安全的Socket層(Secure Sockets Layer,SSL v2/v3)和傳輸層的安全性(Transport Layer Security,TLS v1)。   這個項目是由全世界的志願者管理的,他們通過Internet相互交流、制定計劃和開發OpenSSL工具包和相關文檔。    加密的優勢   數據的保密性   信息加密就是把純文本的輸入文件用加密算法轉換成加密的文件以實現數據的保密。加密的過程需要用到密匙來加密數據然後再解密。沒有了密匙,就無法解開加密的數據。數據加密之後,只有密匙要用一個安全的方法傳送。加密過的數據可以公開地傳送。     數據的一致性   加密也能保證數據的一致性。例如:加密的校驗碼,也叫做消息驗證碼(Message Authentication Code,MAC),能夠校驗用戶提供的加密信息。加密的數據和MAC一起發送給接收者,接收者就可以用MAC來校驗加密數據,保證數據沒有被竄改過。     安全驗證   加密的另外一個用途是用來作為個人的標識,用戶的密匙可以作為他的安全驗證的標識。    專利   各種各樣的公司在世界各地擁有各種各樣算法的專利。在使用加密算法之前必須檢查一下這個算法有沒有受到本國專利的限制。下面列出一些受到專利保護的算法(可能不確切):     RSA Data Security在美國和日本擁有RSA和RC5算法的專利。必須和RSA Data Security聯系以得到許可條例。其主頁是:http://www.rsa.com/。     RC4是RSA Data Security的商標,使用這個標志必須得到RSA Data Security的許可。     IDEA算法在澳大利亞、法國、德國、意大利、日本、荷蘭、西班牙、瑞典、瑞士、英國和美國受專利保護。如果要使用這個算法必須得到許可,其主頁是:http://www.ascom.ch/。    注意事項     下面所有的命令都是Unix兼容的命令。   源路徑都為“/var/tmp”(當然在實際情況中也可以用其它路徑)。   安裝在RedHat Linux 6.1下測試通過。   要用“root”用戶進行安裝。   OpenSSL的版本是0.9.4。    安裝軟件包需要注意的問題   最好在編譯前和編譯後都做一張系統中所有文件的列表,然後用“diff”命令去比較它們,找出其中的差別並知道到底把軟件安裝在哪裡。只要簡單地在編譯之前運行一下命令“find /* >ssl1”,在編譯和安裝完軟件之後運行命令“find /* > ssl2”,最後用命令“diff ssl1 ssl2 > ssl”找出變化。    軟件包的來源   OpenSSL的主頁是:http://www.openssl.org/。     下載:openssl-0.9.4.tar.gz    編譯   把軟件包(tar.Z)解壓縮:    [root@deep]# cp openssl_version.tar.gz /var/tmp  [root@deep]# cd /var/tmp  [root@deep]# tar xzpf openssl_version.tar.gz     編譯與優化  轉到OpenSSL目錄下。    第一步     編輯“c_rehash”文件(vi +11 tools/c_rehash),把:    DIR=/usr/local/ssl     改為:    DIR=/usr     這個改變是使編譯和安裝OpenSSL時用“/usr”這個默認目錄。    第二步     在默認情況下OpenSSL把Perl程序的目錄設置為“/usr/local/bin/perl”目錄。必須改變所有腳本中的“#!/usr/local/bin/perl”這一行,因為在RedHat Linux中Perl的路徑是“/usr/bin”。用下面的命令:    [root@deep]# perl util/perlpath.pl /usr/bin (where your perl program reside).    第三步     為了成功編譯OpenSSL,必須知道函數庫所在的路徑。用下面的命令設置PATH環境變量:    [root@deep]# eXPort LD_LIBRARY_PATH=`pwd`     設置編譯器的編譯參數:    CC="egcs"   ./Configure linux-elf -DSSL_FORBID_ENULL   --prefix=/usr   --openssldir=/etc/ssl     注意:因為安全方面的原因要禁止“不加密”,所以“-DSSL_FORBID_ENULL”參數是必須的。     編輯“Makefile.ssl”文件(vi +52 Makefile.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 +77 Makefile.ssl),加入:    PROCESSOR= 686     注意:如果CPU是Pentium,用586表示,PentiumPro/II/III用686,486用486。    [root@deep]# make -f Makefile  [root@deep]# make test  [root@deep]# make install  [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 -m 644 libRSAglue.a /usr/lib/  [root@deep]# install -m 644 rsaref/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”子目錄。成編譯之後,“make test”測試函數庫是否正常。最後,“make install”安裝OpenSSL。     “mv”命令把“/etc/ssl/misc”目錄下的所有文件移到“/usr/bin”目錄下。因為在我們的系統中所有的二進制文件都在“/usr/bin”目錄下,所以要把二進制文件都移到這個目錄下。     “rm”命令刪除“/etc/ssl/misc”和“/etc/ssl/lib”目錄,因為這個目錄中的文件都在別的地方了。“CA.pl”和“CA.sh”文件是小的腳本文件用來創建CA認證。這個腳本和“openssl ca”命令相關,而且有一些奇怪的要求。在默認情況下,OpenSSL的配置不能很容易地使用“openssl ca”。所以我們後面會用“sign.sh”腳本來替換它們。    清除不必要的文件    [root@deep]# cd /var/tmp  [root@deep]# rm -rf openssl-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),加入並改變:    # OpenSSL example configuration file.  # This is mostly being used for generation of certificate requests.  #  RANDFILE = $ENV::HOME/.rnd  oid_file = $ENV::HOME/.oid  oid_section = new_oids  # To use this configuration file with the "-extfile" option of the  # "openssl x509" utility, name here the section containing the  # X.509v3 extensions to use:  # extensions =  # (Alternatively, use a configuration file that has only  # X.509v3 extensions in its main [= default] section.)  [ new_oids ]  # We can add new OIDs in here for use by 'ca' and 'req'.  # Add a simple OID like this:  # testoid1=1.2.3.4  # Or use config file substitution like this:  # testoid2=${testoid1}.5.6  ####################################################################  [ ca ]  default_ca = CA_default # The default ca section  ####################################################################  [ CA_default ]  dir = /etc/ssl # Where everything is kept  certs = $dir/certs # Where the issued certs are kept  crl_dir = $dir/crl # Where the issued crl are kept  database = $dir/ca.db.index # database inde




Copyright © Linux教程網 All Rights Reserved