○ OpenSSLのインストール 4 Xen

・各アプリケーションで独自のSSLを使う
・fedoraのパッケージをCentOS用にアレンジします
・CentOS 5を使い続ける場合は、無理して入れ替えない方が良いです
・fedoraのサポート期間が短いので、更新できなくなる時期がきます
・openssl-1.0.0d-1.fc14を使います
・certsファイルが別パッケージになっています
・make はメンテナンスマシンで行っています

・既存を使う場合は十分調査して下さい
・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します

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

○関連サイト

:ca-certificates-2010.63-3.fc14.src.rpm  (ftp.riken.jp/Linux/fedora/releases/)
:openssl-1.0.0d-1.fc14.src.rpm (ftp.riken.jp/Linux/fedora/updates/)
:perl-WWW-Curl-4.11-1.el5.1.i386.rpm (ftp.riken.jp/Linux/fedora/epel/)

○参照ファイル

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

○インストール環境

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

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



○openssl-1.0.0d

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

・旧バージョン(0.9.8)のlibraryは上書きされます
・新バージョン(1.0.0)のlibraryを使うには、下記の再構築をして下さい

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

○ソースの展開・ビルド

・md5チェックができないので、--nomd5オプションでインストールします
・libcrypto.a、libssl.a が devel から staticパッケージ に移されています
・全てのパッケージがi686で作成されます(CentOS6以降のデフォルト)

# cd /usr/src
[root@earth:/usr/src]
# mkdir openssl
# rpm -ivh --nomd5 openssl-1.0.0d-1.fc14.src.rpm

・パッチを当てます (下記参照)
・パッチファイルは/usr/src/ディレクトリに置きます

# patch -p0 < openssl-100-soversion.patch
# cd redhat/SPECS
[root@earth:/usr/src/redhat/SPECS]
# rpmbuild -ba --clean --rmsource --target i686 \
--define 'dist .C56' openssl.spec
# mv openssl.spec /usr/src/openssl
# cd /usr/src/redhat/RPMS/i686
[root@earth:/usr/src/redhat/RPMS/i686]

・作成されたパッケージ
 oepnssl-1.0.0d-1.C56.i686.rpm
 openssl-devel-1.0.0d-1.C56.i686.rpm
 openssl-perl-1.0.0d-1.C56.i686.rpm
 openssl-static-1.0.0d-1.C56.i686.rpm

# rm *debuginfo*
# mv *.rpm /usr/src/openssl
# cd ../../SRPMS
[root@earth:/usr/src/redhat/SRPMS]

・作成されたパッケージ
 oepnssl-1.0.0d-1.C56.src.rpm

# mv *.rpm /usr/src/openssl

openssl-100-soversion.patch

・patch52(aes-niのサポート)はgcc-4.4以上が必要なので無効にしています
・CentOS 5.6に合わせるためライブラリのバージョンを修正します
・CentOSに必要なlibssl.so.6はlibssl.so.1.0.0dへのリンクとして作られます



○ca-certificates-2010.63-3

○javaの調整

・java-openjdkの代わりにjre-6u24を使います
・jre-6u24のインストールはclientを参照して下さい
・keytoolのリンクを作ります

# cd /usr/bin
[root@earth:/usr/bin]
# unlink keytool
# ln -s /usr/lib/jre1.6.0_24/bin/keytool keytool

○ソースの展開・ビルド

・md5チェックができないので、--nomd5オプションでインストールします

# cd /usr/src
[root@earth:/usr/src]
# mkdir ca-certificates
# rpm -ivh --nomd5 ca-certificates-2010.63-3.fc14.src.rpm
# cd redhat/SPECS
[root@earth:/usr/src/redhat/SPECS]

・specファイルを修正します (下記参照)

# vi ca-certificates.spec

# rpmbuild -ba --clean --rmsource ca-certificates.spec
# mv ca-certificates.spec /usr/src/ca-certificates
# cd ../RPMS/noarch
[root@earth:/usr/src/redhat/RPMS/noarch]

・作成されたパッケージ
 ca-certificates-2010.63-3.noarch.rpm

# mv *.rpm /usr/src/ca-certificates
# cd ../../SRPMS
[root@earth:/usr/src/redhat/SRPMS]

・作成されたパッケージ
 ca-certificates-2010.63-3.src.rpm

# mv *.rpm /usr/src/ca-certificates
# cd ../BUILD
[root@earth:/usr/src/redhat/BUILD]
# rm -rf ca-certificates

:ca-certificates.spec

・省略

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: perl, python, rcs
BuildArch: noarch

・省略




○インストール

・certsファイルが別パッケージになっています
・旧バージョンとコンフリクトするので、--force オプションを付けます
・CA.plやtsgetを使用しないのならopenssl-perlは必須ではありません
・tsgetスクリプトにはperl-WWW-Curlパッケージが必要です

# cd /usr/src
[root@earth:/usr/src]
# rpm -Uvh perl-WWW-Curl-4.11-1.el5.1.i386.rpm
# cd /usr/src/ca-certificates
[root@earth:/usr/src/ca-certificates]
# rpm -Uvh --force ca-certificates-2010.63-3.noarch.rpm
# cd /usr/src/openssl
[root@earth:/usr/src/openssl]
# rpm -Uvh openssl-devel* openssl-perl* openssl-static* \
openssl-1.0.0d-1.C56.i686.rpm

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

# cd ~
[root@earth:~]
# ldconfig -p | grep libssl
# ldconfig -p | grep libcrypto

・ファイルの確認

# cd /usr/lib
[root@earth:/usr/lib]
# ls -al | grep libssl
# ls -al | grep libcrypto



○openssl-0.9.8eの依存関係

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

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

libcrypto.so.6 is needed by (installed)

cyrus-sasl-2.1.22-5.el5_4.3.i386
sendmail-8.13.8-8.el5.i386
pam_ccreds-3-5.i386
stunnel-4.15-2.el5.1.i386
wget-1.11.4-2.el5_4.1.i386
tcpdump-3.9.4-15.el5.i386
trousers-0.3.1-4.el5.i386
ecryptfs-utils-75-5.el5.i386
fipscheck-1.2.0-1.el5.i386
nmap-4.11-1.1.i386
net-snmp-libs-5.3.2.2-9.el5_5.1.i386
net-snmp-5.3.2.2-9.el5_5.1.i386
net-snmp-utils-5.3.2.2-9.el5_5.1.i386
gnupg-1.4.5-14.el5_5.1.i386
ipsec-tools-0.6.5-14.el5_5.5.i386
iscsi-initiator-utils-6.2.0.872-6.el5.i386
python-libs-2.4.3-43.el5.i386
openldap-2.3.43-12.el5_6.7.i386
bind-libs-9.3.6-16.P1.el5.i386
curl-7.15.5-9.el5_6.2.i386
m2crypto-0.16-7.el5.i386
bind-utils-9.3.6-16.P1.el5.i386

libssl.so.6 is needed by (installed)

sendmail-8.13.8-8.el5.i386
stunnel-4.15-2.el5.1.i386
wget-1.11.4-2.el5_4.1.i386
nmap-4.11-1.1.i386
gnupg-1.4.5-14.el5_5.1.i386
python-libs-2.4.3-43.el5.i386
openldap-2.3.43-12.el5_6.7.i386
curl-7.15.5-9.el5_6.2.i386
m2crypto-0.16-7.el5.i386
quota-3.13-4.el5.i386

openssl is needed by (installed)

libpcap-0.9.4-15.el5.i386
sendmail-8.13.8-8.el5.i386
openssl-devel-0.9.8e-12.el5_5.7.i386
openssl-perl-0.9.8e-12.el5_5.7.i386
curl-7.15.5-9.el5_6.2.i386

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