○ OpenSSLのインストール 4 Router

・CentOS 6.9 では openssl-1.0.1e がrpmでインストールされます

・opensslのアップデートに即時に対応するための作業です
・CentOSのrpmパッケージを使う場合は省略してください

・各アプリケーションで独自のSSLを使います
・openssl-1.0.2kをオリジナルソースから構築します
・既存を残したまま、別のディレクトリにインストールします
・make はメンテナンスマシンで行っています

・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:openssl-1.0.2k.tar.gz (http://www.openssl.org/)

○参照ファイル

パッケージの追加
最初の設定 (Router)

○インストール環境

:OS CentOS 6.9
:selinux permissive
:インストール先  /usr/local
:作業 ~/src
:言語 LANG=en_US.UTF-8
:ユーザー rootで実行

・メンテナンスの場合は一般ユーザから行います



○openssl-1.0.2k

○opensslの関連するソースファイル

・新バージョン(1.0.2)のlibraryを使うには、下記の再構築をして下さい

openssh, proftpd, vsftpd, ntp, bind, mysql, postfix, dovecot, bincimap, imap,
httpd, php, mod_security, samba, tripwire, Net_SSLeay, etc.

○既存のheaderファイルの削除

[root@venus:~]
# rpm -e openssl-devel openssl-perl
# ldconfig

○ソースの展開・インストール

・sctpオプションにはlksctp-tools-develが必要です
・no-mdc2 no-rc5 (ライセンス問題あり opensslーFAQ)

# cd ~/src
[root@venus:~/src]
# tar zxvf openssl-1.0.2k.tar.gz
# cd openssl-1.0.2k
[root@venus:~/src/openssl-1.0.2k]
# make dclean

# ./config --prefix=/usr/local \
zlib sctp enable-camellia enable-seed enable-tlsext \
enable-rfc3779 enable-cms enable-md2 no-mdc2 no-rc5 \
no-ec2m no-gost no-srp shared

# vi Makefile

・Makefileの修正 (各自のCPUに合わせて下さい)
 CFLAG= ・・・-DHAVE_DLFCN_H -march=i686 -mtune=atom -Wa,・・・

# make depend
# make
# make test
.........................
ALL TESTS SUCCESSFUL
.........................
ALL OCSP TESTS SUCCESSFUL
.........................
PASS
.........................
# make install

# cd ..
[root@venus:~/src]
# tar jcvf openssl-1.0.2k-170129.tar.bz2 openssl-1.0.2k/

○Configureスクリプトを使う場合 (参考)

・"linux-elf" Makefileで {sslarch} に設定される部分 linux i686 の場合
・CFLAGから -Wa,--noexecstack が抜けるので注意

# ./Configure linux-elf --prefix=/usr/local \
zlib sctp enable-camellia enable-seed enable-tlsext \
enable-rfc3779 enable-cms enable-md2 no-mdc2 no-rc5 \
no-ec2m no-gost no-srp shared

○openssl(rpm)コマンドのリネーム・headerファイルのリンク

# cd ~
[root@venus:~]
# ls /usr/bin/openssl*
# rm /usr/bin/openssl-ORIG
# mv /usr/bin/openssl /usr/bin/openssl-ORIG
# ln -s /usr/local/include/openssl /usr/include/openssl

○キャッシュ情報とファイルの確認

・/usr/local/libの設定がされているなら、ldconfigのみ実行します

[root@venus:~]
# echo /usr/local/lib >> /etc/ld.so.conf.d/usrlocal.conf
# ldconfig
# ldconfig -p | grep -e libssl.so -e libcrypto.so
libssl.so.10 (libc6) => /usr/lib/libssl.so.10
libssl.so.1.0.0 (libc6) => /usr/local/lib/libssl.so.1.0.0
libssl.so (libc6) => /usr/local/lib/libssl.so
libcrypto.so.10 (libc6) => /usr/lib/libcrypto.so.10
libcrypto.so.1.0.0 (libc6) => /usr/local/lib/libcrypto.so.1.0.0
libcrypto.so (libc6) => /usr/local/lib/libcrypto.so

・ライブラリに埋め込まれたSONAME

# objdump -p /usr/local/lib/libssl.so.1.0.0|grep SONAME
  SONAME               libssl.so.1.0.0

・ファイルの確認

# cd /usr/local/lib
[root@venus:/usr/local/lib]
# ls -al | grep -e libssl -e libcrypto |awk '{print $9,$10,$11}'
libcrypto.a  
libcrypto.so -> libcrypto.so.1.0.0
libcrypto.so.1.0.0  
libssl.a  
libssl.so -> libssl.so.1.0.0
libssl.so.1.0.0

○ライブラリの動的リンクの確認

・例 ssh

# cd ~
[root@venus:~]
# ldd /usr/local/bin/ssh

○selinuxへの対応 (selinuxが有効の場合)

:新規インストールファイルのselinuxラベルを修正

# cd ~
[root@venus:~]
# restorecon -Rv /usr/local



○openssl-1.0.1eの依存関係

・rpmに --test オプションを付けて削除を実行してみます
・表示は、インストールされているrpmパッケージのみです

[root@venus:~]
# rpm -e --test openssl

libcrypto.so.10 is needed by (installed)
    libssh2-1.4.2-2.el6_7.1.i686
    bind-libs-32:9.8.2-0.62.rc1.el6.i686
    mysql-libs-5.1.73-8.el6_8.i686
    fipscheck-1.2.0-7.el6.i686
    openssh-5.3p1-122.el6.i686
    ntpdate-4.2.6p5-10.el6.centos.2.i686
    cyrus-sasl-2.1.23-15.el6_6.2.i686
    python-libs-2.6.6-66.el6_8.i686
    ntp-4.2.6p5-10.el6.centos.2.i686
    openssh-server-5.3p1-122.el6.i686
    openssh-clients-5.3p1-122.el6.i686
    tcpdump-14:4.0.0-11.20090921gitdf3cb4.2.el6.i686
    bind-utils-32:9.8.2-0.62.rc1.el6.i686
    wget-1.12-10.el6.i686
    sendmail-8.14.4-9.el6_8.1.i686
    net-snmp-libs-1:5.5-60.el6.i686
    trousers-0.3.13-2.el6.i686
    libarchive-2.8.3-7.el6_8.i686
    openssl-devel-1.0.1e-57.el6.i686
    ecryptfs-utils-82-6.el6_1.3.i686
    net-snmp-1:5.5-60.el6.i686
    net-snmp-utils-1:5.5-60.el6.i686
    nmap-2:5.51-6.el6.i686
    m2crypto-0.20.2-9.el6.i686

libcrypto.so.10(OPENSSL_1.0.1) is needed by (installed)
    openssh-5.3p1-122.el6.i686
    ntpdate-4.2.6p5-10.el6.centos.2.i686
    ntp-4.2.6p5-10.el6.centos.2.i686
    openssh-server-5.3p1-122.el6.i686
    openssh-clients-5.3p1-122.el6.i686
    sendmail-8.14.4-9.el6_8.1.i686
    net-snmp-libs-1:5.5-60.el6.i686

libcrypto.so.10(OPENSSL_1.0.1_EC) is needed by (installed)
    openssh-5.3p1-122.el6.i686
    openssh-server-5.3p1-122.el6.i686
    openssh-clients-5.3p1-122.el6.i686
 
libcrypto.so.10(libcrypto.so.10) is needed by (installed)
    libssh2-1.4.2-2.el6_7.1.i686
    bind-libs-32:9.8.2-0.62.rc1.el6.i686
    mysql-libs-5.1.73-8.el6_8.i686
    openssh-5.3p1-122.el6.i686
    ntpdate-4.2.6p5-10.el6.centos.2.i686
    cyrus-sasl-2.1.23-15.el6_6.2.i686
    python-libs-2.6.6-66.el6_8.i686
    ntp-4.2.6p5-10.el6.centos.2.i686
    openssh-server-5.3p1-122.el6.i686
    openssh-clients-5.3p1-122.el6.i686
    tcpdump-14:4.0.0-11.20090921gitdf3cb4.2.el6.i686
    wget-1.12-10.el6.i686
    sendmail-8.14.4-9.el6_8.1.i686
    net-snmp-libs-1:5.5-60.el6.i686
    trousers-0.3.13-2.el6.i686
    net-snmp-utils-1:5.5-60.el6.i686
    nmap-2:5.51-6.el6.i686

libssl.so.10 is needed by (installed)
    libssh2-1.4.2-2.el6_7.1.i686
    mysql-libs-5.1.73-8.el6_8.i686
    python-libs-2.6.6-66.el6_8.i686
    wget-1.12-10.el6.i686
    sendmail-8.14.4-9.el6_8.1.i686
    trousers-0.3.13-2.el6.i686
    openssl-devel-1.0.1e-57.el6.i686
    nmap-2:5.51-6.el6.i686
    m2crypto-0.20.2-9.el6.i686

libssl.so.10(libssl.so.10) is needed by (installed)
    mysql-libs-5.1.73-8.el6_8.i686
    python-libs-2.6.6-66.el6_8.i686
    wget-1.12-10.el6.i686
    sendmail-8.14.4-9.el6_8.1.i686
    nmap-2:5.51-6.el6.i686

openssl = 1.0.1e-57.el6 is needed by (installed)
    openssl-devel-1.0.1e-57.el6.i686
    openssl-perl-1.0.1e-57.el6.i686

○ Copyright(c) 528p.com All Rights Reserved.