Help us understand the problem. What is going on with this article?

【openssl】opensslをC++で使う為にビルドした

More than 3 years have passed since last update.

概要

そこら中に転がってるであろうopensslのビルド方法まとめ。
C++で利用するのに必要だったので、折角やったからとりあえずざっくりとまとめてみた(タイトルも完全なものではなかったから一応変更)。

入れたOS

CentOS6.6。

最新のopensslを落とす

ここから落とす。

https://www.openssl.org/source/

kore.png

自分はCUIだったのでwgetを使った。無いなら入れても良いと思う。

$ sudo su
$ yum install wget
$ wget https://www.openssl.org/source/openssl-1.0.2.tar.gz
$ tar zxvf openssl-1.0.2

ビルドしてインストール

事前準備

ビルドの際にlibsslが必要なんだけど入れていない場合は入ってないので入れる必要がある。

$ yum install openssl-devel

コンフィグ

./configする。基本的には次の3つだと思う、それ以外にも色々あるけど詳細は同梱されてるINSTALLってテキストファイルを読むか

http://wiki.openssl.org/index.php/Compilation_and_Installation

がとても参考になる。
コンフィグでは基本的には以下3つを設定することになると思う。

  • インストールフォルダの指定
  • 不要なライブラリを切る指定
  • シェアードライブラリにするかどうか

指定なしの場合は次のコマンドを打ったのと同じになると書かれてるのでこれが嫌な人はどうぞ。

# 以下が $ ./config と同じ
$ ./config --prefix=/usr/local --openssldir=/usr/local/openssl

インストールフォルダの指定

--prefix、--openssldirのオプションを使って指定する。
指定無しの場合は上記で既に解説済み。

不要なライブラリを切る指定

no-ライブラリ名

ってオプションを噛ますと指定できる。
利用していないライブラリに特許が入っていると面倒くさいことになる。だから使わないライブラリは極力切った方が良い。とはいえ特許の専門家でも無いので使ってないライブラリが入ってたからどうのみたいなところの詳細については知らない。怖い人は切った方が良い程度に。

シェアードライブラリにするかどうか

sharedってオプションがある。
ようはシェアードライブラリとして作りたい人用。お好きなように。

参考までに自分のconfig

最終的にこういうconfigになった。

$ ./config --prefix=/opt/openssl-1.0.2 no-idea no-mdc2 no-rc5 no-ec shared

make

コンフィグを噛ますとライブラリの有効無効を1つでも設定した場合make dependしろと言われる。
configの際に「no-何たら」でライブラリを無効にした人はmake dependすること。

# ライブラリを無効にした場合
$ make depend
$ make
$ make test
# 特に無効とかの指定はせずに./configだけした場合
$ make
$ make test

make testでERRORとかが一番最後に出なければOK。ERRORとかいう文字が出ている場合は何かおかしい。
自分の場合次のエラーが出た。

cannot find -lssl

libsslが無かったらしい。ちゃんと上述の「事前準備」でopenssl-develをインストールしていればこのエラーはでないはず。
何もエラーが出なければmake installして終わり。

$ make install

デフォルトのインストール先は/usr/local/opensslらしいのでlsとかで確認しても良いししなくても良い。

$ ls /usr/local/
(省略)... openssl ...(省略)
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away