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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

OpenSSL

OpenSSLはSSL/TLSのプロトコルと一般的な暗号のライブラリを導入するオープンソースのソフトウェアのツールキットです。

Q&A

3回答

12274閲覧

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

退会済みユーザー

退会済みユーザー

総合スコア0

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

OpenSSL

OpenSSLはSSL/TLSのプロトコルと一般的な暗号のライブラリを導入するオープンソースのソフトウェアのツールキットです。

0グッド

1クリップ

投稿2017/03/03 07:20

編集2017/03/04 04:45

###前提・実現したいこと
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 が入っています。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

take88

2017/03/03 10:32

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

退会済みユーザー

2017/03/03 11:24

一応どちらともです。
guest

回答3

0

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/03 13:56

編集2017/03/08 12:15
take88

総合スコア1369

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/03/06 11:18

失礼します。 ``` 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 ``` に ``` echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bash_profile . ~/.bash_profile openssh -v ``` をそのまま上の方のコードの続きに書きましたが ``openssh -v`` とやってもエラーが出ます。
take88

2017/03/06 13:18

エラーは何と表示されましたでしょうか?
CHERRY

2017/03/07 08:11

横から失礼します。 openssh と入力されているようですが? openssl が正しいのでは?
退会済みユーザー

退会済みユーザー

2017/03/07 10:37

回答に openssh と書いてあるのでそうしました。
gorogoroIT

2017/03/08 07:12

やや横から失礼します。 今、(編集された)質問内容を読み返したのですが、以下のように記述されているので PATH の問題は解決しているのでは。 > しかし、openssl versionで確認するとリコンパイルした。OpenSSL のバージョンが表示されます。
退会済みユーザー

退会済みユーザー

2017/03/08 11:36

しかし、事情で yum でインストールした物も OpenSSL 1.1.0e を使用したいです。(Apache は難しいそうなので Nginx を YUM でインストールして nginx -V で確認しましたが旧OpenSSL でした。)
take88

2017/03/08 12:16

ややや、「openssh」は私の間違いです。正しくは「openssl」でした。すみません。
take88

2017/03/08 12:29

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

退会済みユーザー

2017/03/09 10:23

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

2017/03/09 11:35

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

0

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

投稿2017/03/08 12:37

moonphase

総合スコア6621

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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/03 13:55

編集2017/03/10 07:27
gorogoroIT

総合スコア447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/03/09 10:26

Nginx を起動させるときは /usr/local/sbin/nginx start でよろしいでしょうか また、自動起動方法などはありますか?
gorogoroIT

2017/03/10 04:04 編集

(今回、ビルドまででインストールはしていないので、) 起動させるだけならば、"/usr/local/sbin/nginx" で起動します。 OS起動時に、自動起動させるのであれば、"/etc/init.d/" に自動起動させるためのスクリプトを置けば実現できると思います。 (訂正) CentOS 7.3 の場合、自動起動させるのは違うディレクトリでした。
gorogoroIT

2017/03/09 12:21

なるほど。 "conigure "のオプションは、環境(インストールされているパッケージなど)によっては、 エラーになるかもしれません。 解決方法は、エラーメッセージに書かれているので・・・
gorogoroIT

2017/03/11 05:36

回答内容の"configure"のオプションをダイエット(環境依存する部分を排除)しました。
退会済みユーザー

退会済みユーザー

2017/03/13 11:57

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

2017/03/14 14:01 編集

> prefix でエラーが発生しました。 うーん。 "prefix" のスペルは合っているようなのですが。 「pcre」「zlib」「openssl」のソースファイルが適切に配置されていれば、問題ないと思われます。 ファイルのダウンロード&展開から、やり直してもエラーが発生しますでしょうか。 "-prefix=/usr/local" に、なっていませんか。 「./configure error invalid option」に続く、文字列がわからないと、特定できません。
take88

2017/03/15 11:38

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問