24.2. 编译和优化

移动到新的 Openssl 目录并在您的终端中输入以下命令

  1. 编辑c_rehash文件,vi +11tools/c_rehash并更改以下行
             DIR=/usr/local/ssl
             
    改为如下内容
             DIR=/usr
             
    上面更改的行将在默认位置构建和安装 OpenSSL/usr.

  2. 默认情况下,OpenSSL 源文件假定您的 Perl 程序目录位于/usr/local/bin/perl目录。我们必须修改所有依赖 perl 的脚本中的 #!/usr/local/bin/perl 行,以反映我们在 Red Hat Linux 下的 Perl 目录为/usr/bin.
               [root@deep ]/openssl-0.9.5a# perl util/perlpath.pl /usr/bin (1)
             

    (1)
    您的 perl 程序所在的位置。

  3. OpenSSL 必须知道在哪里找到必要的 OpenSSL 源库才能成功编译其所需的文件。使用以下命令,我们设置PATH环境变量为我们解压缩 OpenSSL 源文件的默认目录。
             [root@deep ]/openssl-0.9.5a# export LD_LIBRARY_PATH=`pwd`
             

  4. 现在,我们必须为我们的系统配置 OpenSSL
             CC="egcs" \
             ./Configure linux-elf -DSSL_FORBID_ENULL \ (1)
             --prefix=/usr  \
             --openssldir=/etc/ssl
             

    (1)
    选项-DSSL_FORBID_ENULL选项是必需的,因为出于安全原因不允许空加密。

  5. 编辑 Makefile.ssl 文件并更改以下行

    1. vi +50 Makefile.ssl
               CC= gcc
               
      改为如下内容
               CC= egcs
               

    2. 使用 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
               

    3. 使用 vi +79 编辑Makefile.ssl并为 Pentium Pro 处理器添加以下值
               PROCESSOR=  686
               

      Note: 我们上面做的三个修改将为服务器上 OpenSSL 软件的编译设置优化标志。对于最后一个修改PROCESSOR=上面,如果您使用586表示 Pentium,请使用686表示 Pro/II/III,请使用486表示 486,具体取决于您拥有的处理器类型。

    4. 使用 vi +161 编辑Makefile.ssl并更改以下行
               MANDIR=$(OPENSSLDIR)/man
               
      改为如下内容
               MANDIR=/usr/man
               
      此步骤对于设置 OpenSSL 的 man 手册将要安装的目录是必要的。通过此修改,我们将它们安装在/usr/man目录。

现在我们必须在服务器上编译和安装 OpenSSL
             [root@deep ]/openssl-0.9.5a# make -f  Makefile
             [root@deep ]/openssl-0.9.5a# make test
             [root@deep ]/openssl-0.9.5a# make install
             [root@deep ]/openssl-0.9.5a# mv /etc/ssl/misc/*  /usr/bin/
             [root@deep ]/openssl-0.9.5a# rm -rf  /etc/ssl/misc/
             [root@deep ]/openssl-0.9.5a# rm -rf  /etc/ssl/lib/
             [root@deep ]/openssl-0.9.5a# rm -f   /usr/bin/CA.pl
             [root@deep ]/openssl-0.9.5a# rm -f   /usr/bin/CA.sh
             [root@deep ]/openssl-0.9.5a# install -m 644 libRSAglue.a  /usr/lib/
             [root@deep ]/openssl-0.9.5a# install -m 644 rsaref/rsaref.h  /usr/include/openssl/
             [root@deep ]/openssl-0.9.5a# strip /usr/bin/openssl
             [root@deep ]/openssl-0.9.5a# mkdir -p /etc/ssl/crl
           

Caution

选项bc-1.05a-4.i386.rpm或更高版本的软件包必须已安装在您的 Linux 服务器上,否则您将在 OpenSSL 的库测试期间收到错误消息。

请不要忘记稍后清理
             [root@deep] /# cd /var/tmp
             [root@deep tmp]# rm  -rf openssl-version/ openssl-version.tar.gz
           
rm 命令将删除我们用于编译和安装 OpenSSL 的所有源文件。它还将从以下位置删除 OpenSSL 压缩包/var/tmp目录。