質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.97%

【CentOS】リコンパイルした OpenSSL をシステム標準にしたい

受付中

回答 3

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 5,341
退会済みユーザー

退会済みユーザー

前提・実現したいこと

https://teratail.com/questions/66253
OpenSSL を

yum -y groupinstall development
yum -y install zlib-devel

cd /usr/local/src/
wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz
tar xvzf openssl-1.1.0e.tar.gz
cd openssl-1.1.0e/
./config shared zlib
make
make install

echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf
echo "/usr/local/lib" >> /etc/ld.so.conf.d/local.conf
/sbin/ldconfig

と OpenSSL を手動でインストールしました。

発生している問題・エラーメッセージ

しかし、openssl versionで確認するとリコンパイルした。OpenSSL のバージョンが表示されます。

でも、ソフトの詳細を見るとyum install openssl でインストールされたOpenSSLが使われています。

補足情報(言語/FW/ツール等のバージョンなど)

CentOS 7.3
初期から OpenSSL 1.0.1 が入っています。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • take88

    2017/03/03 19:32

    コマンドで新しいopensslを実行出来れば良いのでしょうか。それともApacheなどのプログラムに組み込むのが目的ですか?

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2017/03/03 20:24

    一応どちらともです。

    キャンセル

回答 3

+2

opensslコマンドについて

centosで標準でインストールされている openssl は色々なパッケージが依存しているので システム標準の openssl はデフォルトのままが良いと思います。

自分でビルドしたOpensslは/usr/local/bin にインストールされていると思いますので 使用する際に、/usr/local/bin/openssl が呼び出されれば良いと思います。

というわけで環境変数PATHに /usr/local/bin を追加すれば良い気がします。

例:
$ echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bash_profile
$ . ~/.bash_profile
$ openssl -v

Apacheに組み込む

Apacheに組み込むには ソースからビルドを行います。
その際、「./configure --prefix=/opt/httpd --enable-mods-shared=all --enable-ssl --with-ssl=/opt/openssl」というように ssl のインストール先を指定します。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/08 21:29

    nginx -V で表示されるOpenSSLは、Nginxをビルドした時に組み込まれたものです。1.1.0e を使用したい場合は Nginx のソースコートをビルドして使ってみてください。nginxのビルド方法は・・・すみませんよくわかりません。

    キャンセル

  • 2017/03/09 19:23

    やっぱ Nginx とかは自分でリコンパイルしないといけないのでしょうか

    キャンセル

  • 2017/03/09 20:35

    ビルド済みの rpm が 公開されていれば それを入れるという手がありますが、すみません、私にはわからないですね…。

    キャンセル

0

明確な回答にはなっていませんが・・・

しかし、openssl versionで確認すると yum install openssl で導入した OpenSSL のバージョンが表示されてしまします。

以下の要因が考えられます。

  • インストール先にパスが通っていない
  • 正常にインストールできていない。

そして OpenSSL を使用する物も古いOpenSSL を使ってしまって困ってます。

自己責任であれば)OpenSSL を併用することは可能だと思います。
※ 「OpenSSL 1.1.0」で動作しない可能性もありますが。。。

openssl の併用


■(2017-03-09 19:10 追記)■
■(2017-03-09 22:45 修正):configure のオプションのダイエット■
■(2017-03-10 16:20 )修正■

 「nginx-1.11.10」 を 「openssl-1.1.0e」 でビルド・インストール

ワタシが試しにビルドしたときのメモです

●nginx のコンパイルに必要なモノをダウンロード

cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.bz2
wget http://zlib.net/zlib-1.2.11.tar.xz
wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz
wget https://nginx.org/download/nginx-1.11.10.tar.gz

●ダウンロードしたファイルを展開

cd /usr/local/src
tar zxvf openssl-1.1.0e.tar.gz
tar jxvf pcre-8.40.tar.bz2
tar Jxvf zlib-1.2.11.tar.xz
tar zxvf nginx-1.11.10.tar.gz

●意味ないけど、シンボリック・リンク

cd /usr/local/src
ln -s ./openssl-1.0.2k openssl
ln -s ./pcre-8.40 pcre
ln -s ./zlib-1.2.11 zlib
ln -s ./nginx-1.11.10 nginx

●nginx のソースディレクトリで "configure"実行

  • /usr/local 以下にインストール
  • 今回、configure のオプションは(多分)最低限になっています。
  • デフォルトの「モジュール使用」+「HTTPS対応」
  • 他に必要な機能(モジュール)は、適宜、指定してください。
  • 必要なパッケージはわかりません。
cd /usr/local/src/nginx

./configure --prefix=/usr/local \
  --with-cc=gcc \
  --user=nginx \
  --group=nginx \
  --with-http_ssl_module \
  --with-stream \
  --with-pcre-jit \
  --with-pcre=./../pcre \
  --with-zlib=./../zlib \
  --with-openssl=./../openssl \
  --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' \
  --with-ld-opt='-Wl,-z,relro -Wl,-z,now '

エラーが発生しなければ、以下のようなメッセージが表示されます。

Configuration summary
  + using threads
  + using PCRE library: ./../pcre
  + using OpenSSL library: ./../openssl
  + using zlib library: ./../zlib

  nginx path prefix: "/usr/local"
  nginx binary file: "/usr/local/sbin/nginx"
  nginx modules path: "/usr/local/modules"
  nginx configuration prefix: "/usr/local/conf"
  nginx configuration file: "/usr/local/conf/nginx.conf"
  nginx pid file: "/usr/local/logs/nginx.pid"
  nginx error log file: "/usr/local/logs/error.log"
  nginx http access log file: "/usr/local/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

●"make" & "make install"実行

make 

make install

●バージョン確認

/usr/local/sbin/nginx -V
nginx version: nginx/1.11.10
built by gcc X.Y.Z
built with OpenSSL 1.1.0e  16 Feb 2017
TLS SNI support enabled
~~~

●後始末

cd /usr/local/src

rm -rf  openssl-1.0.2k openssl pcre-8.40 pcre zlib-1.2.11 zlib nginx-1.11.10 nginx
  • ばっさり、消してしまって良いのかは知りません。

※ 補足

  • OS起動時に自動実行させる設定は、環境によって異なるので、ご自身でお調べください。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/13 20:57

    prefix でエラーが発生しました。
    ./configure error invalid option こんな感じのです。

    キャンセル

  • 2017/03/14 10:52 編集

    > prefix でエラーが発生しました。

    うーん。 "prefix" のスペルは合っているようなのですが。

    「pcre」「zlib」「openssl」のソースファイルが適切に配置されていれば、問題ないと思われます。
    ファイルのダウンロード&展開から、やり直してもエラーが発生しますでしょうか。

    "-prefix=/usr/local" に、なっていませんか。

    「./configure error invalid option」に続く、文字列がわからないと、特定できません。

    キャンセル

  • 2017/03/15 20:38

    @Satoshi_
    横からすみません。「--prefix」以外のオプションがスペルミスしてる場合も同じエラーになりますので、configure に指定したオプションのいずれかが 入力し間違ってるのでは?と思います。コピペ出切るならそれが一番いいでしょう。出来ないなら「l」と「I」とか「_」と「-」とか間違いやすい文字もあるので 1文字ずつチェックしてみると良いと思います。

    キャンセル

0

コンパイルしたopensslをシステム標準にしたいのであれば、もとからあったopensslを削除し、コンパイルしたものにPATHを通せばいかがでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.97%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる