OPenSSLについて、よくわからないのでご教授願えないでしょうか?
OPenSSLというのは、SSL通信を行う為のアプリケーションで、下記URLからダウンロードして、ビルドして使うものの事を言うのでしょうか?
https://www.openssl.org/source/
また、OpenSSLというのは、必ずビルドして使うものなのでしょうか?
わざわざビルドさせるのは、様々なプラットフォームで対応させるためでしょうか?
正直、このビルドして使うタイプの配布方法は、ビルドがうまくいかないケースが多く、苦手なのですが、そのあたりはやっぱり慣れとかでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
OPenSSLというのは、SSL通信を行う為のアプリケーションで、
アプリケーションの定義によりますが、正確には違います。OpenSSLには「SSL通信を行う為のアプリケーション」が含まれるだけであって、それだけのソフトウェアではありません。OpenSSLはTLS/SSLを扱うための総合的なツールキットであり、その中には、
- TLS/SSLのためのライブラリ
- TLS/SSLの利用を補助するためのツール(暗号鍵作成や証明書作成など)
- TLS/SSL通信を行うツール(OpenSSLのみでTLS/SSLサーバーやクライアントとして使うなど)
- 暗号化のためのライブラリ
- 暗号化のためのツール(ファイルをAESで暗号化するなど)
等があります。
一般にアプリケーションと言った場合、アプリケーションソフトウェアを指すと思われます。具体的にコマンドやダブルクリックなどで実行し、なにからの処理をさせる物とここでは私は解釈しました。OpenSSL自身にもアプリケーションの機能はツールとして備わっていますが、SSL/TLSや暗号化のためのライブラリとしても使用可能です。ライブラリとして使用した場合は、OpenSSLが単独で実行されるアプリケーションとなるわけではなく、他のアプリケーションから利用される形になります。
また、SSL/TLSのみでは無く、暗号化技術全般のツール・ライブラリとしても使用できるようになっており、SSL/TLS通信を行う為だけではありません。場合によっては、暗号化の機能しか使用しない場合もあります。
下記URLからダウンロードして、ビルドして使うものの事を言うのでしょうか?
https://www.openssl.org/source/
また、OpenSSLというのは、必ずビルドして使うものなのでしょうか?
ほとんどの場合はビルドする必要はありません。
OpenSSLは大変有名なソフトウェアです。そのため、ほとんどのUNIX(macOS含む)/LinuxではOS標準またはパッケージとしてビルド済みのOpenSSLを各OSの開発者が用意しています。また、暗号化に関する機能についてはOpenSSLに依存する物が多く、ほとんどのUNIX/LinuxではOS標準で組み込み、または、デフォルトでパッケージがインストールされるようになっています。多くの場合は、OS側が用意するビルド済みOpenSSLを利用して問題ありません。インストール時に入っていなかったとしても、コマンド一つでパッケージとして入れることが可能です。
ただし、例外はあります。
一つはWindowsです。Windowsを制作しているMicrosoftはOpenSSLをWindowsに含めていません。また、製品レベルのビルド済みパッケージも用意していません。しかし、バイナリがまったく無いわけではありません。Windows向けOpenSSLバイナリは探せばたくさんあります(OpenSSLのWikiページにもいくつか紹介されています)。中には他のアプリケーションと一緒に含まれている物もあります。ただし、どれも非公式のため、ビルドした開発者をどう信頼するのかしか判断基準はありません。
もう一つは最新版を使いたい場合です。UNIX/Linux向けのパッケージの場合、通常、そのOSの開発中の最新バージョンが使われます。しかし、OSをリリースした後はOpenSSL自体のバージョンを上げることは滅多にありません。これは互換性を維持するためです。ただ、セキュリティーホールなどの重大なバグは個別にパッチをあててビルドし直した物をアップデートパッケージとして提供するため、着実にパッケージのアップデートを実施していれば、OpenSSLが古いバージョンであっても脆弱性があったままになるということはありません。しかし、最新版で追加された機能を使うため、どうしても最新版を入れたい場合は、やはり自分でビルドするしかありません。
わざわざビルドさせるのは、様々なプラットフォームで対応させるためでしょうか?
公式ではソースのみ公開し、ユーザーにビルドさせるというのはUNIXの文化です。OSやCPUのアーキテクチャの違いを吸収させるには、ソースからビルドさせるしかありません。かといって、公式で全てのOSのビルド済みパッケージを用意するのは非現実的です。※
※ 最近は、自分でビルドするという文化がないWindowsやmacOS、また、ライトなLinuxユーザーが多いUbuntu向けについては、ビルド済みのバイナリを用意するソフトウェアも多いです。
正直、このビルドして使うタイプの配布方法は、ビルドがうまくいかないケースが多く、苦手なのですが、そのあたりはやっぱり慣れとかでしょうか?
私の経験上、ビルドがうまく行かなかった原因の9割はREADME等に書かれたビルド方法通りにやっていない(特に注意事項を実施していない)事です。あとの1割はマイナーなOS(Linuxであればディストリビューション)を使っていて、その特有の現象にぶつかった場合です。マイナーなOSを使っていない限り、README等をきちんと読めば、問題にぶつかることはほとんど無いと思います。
また、OpenSSLのように誰でも使うような有名なソフトウェアについては、メジャーなOSの場合は大抵バイナリが存在します。ですので、自分でビルドする場合はかなり希だと思います。あえてマイナーなOSを使いたいというのであれば、全て自分でビルドすることが前提と思わなければ、使いこなすことがそもそも無理だと思います。
投稿2017/01/15 11:13
総合スコア21733
0
OPenSSLというのは、SSL通信を行う為のアプリケーションで、...
そうです。
正確に言うと、
OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library. (...)
と説明されています。OpenSSLとは、「OpenSSL」というアプリケーション (応用ソフトウェア) を製作し、公開することを目的とする、とあるプロジェクトの名称です。
...下記URLからダウンロードして、ビルドして使うものの事を言うのでしょうか?
https://www.openssl.org/source/
また、OpenSSLというのは、必ずビルドして使うものなのでしょうか?
そうです。
どのソフトウェアも、最初はソースコードからビルドして作られます。ただ、製造した人や団体が、ソースコードからビルドしたものだけを流通させ、ソースコードは非公開とすることもあります (多くの商用ソフトウェアでは、そうしています)。
OpenSSLはオープンソースソフトウェアですので、ソースコードは必ず公開されます。
わざわざビルドさせるのは、様々なプラットフォームで対応させるためでしょうか?
そうです。
上で述べたソースコード非公開のソフトウェアでも、さまざまなプラットフォームに対応したバージョンが供給されることがありますね (32ビット版と64ビット版のように)。それぞれのプラットフォームにあわせてビルドしたものを流通させているからです。またオープンソースソフトウェアであっても、主要なプラットフォーム向けにビルドしたものが公開されている場合があります。さまざまなビルドずみのソフトウェアをセットにしたもの (ディストリビューション) を提供している人・団体 (ディストリビュータ) もいます。
目的のプラットフォーム用にビルドずみのものが手に入らない、とか、ビルドされたものは使いたいオプション機能が有効になっていない、といったときは、ソースコードから自分でビルドする必要があります。
よくある例としては、セキュリティホールなどが発見されたとき、最新の対策ずみのソースコードからビルドすることで、他人がビルドしてくれるのを待たずに対策ずみのソフトウェアに置き換える、というものが挙げられます。
正直、このビルドして使うタイプの配布方法は、ビルドがうまくいかないケースが多く、苦手なのですが、そのあたりはやっぱり慣れとかでしょうか?
そうです。
先に述べたように「オープンソースソフトウェア」や「フリーソフトウェア」はソースコードが公開されているので、誰でもビルドできます。ビルドの手順も、ある程度似通っているものが多いです。慣れてくれば、初めてのソフトウェアでも自分でビルドできるようになります。
ある特定のソフトウェアのビルドがうまくいかない、といったことがあれば、また質問して下さい。
投稿2017/01/15 05:11
編集2017/01/15 06:52総合スコア4227
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/15 12:57
2017/01/15 14:43
0
OPenSSLというのは、SSL通信を行う為のアプリケーションで、
YESといってよいと思います。
下記URLからダウンロードして、ビルドして使うものの事を言うのでしょうか?
必ずしもYESではないと思います。
OSS(オープンソースソフトウェア)の場合そのソフトウェアおよびターゲットプラットフォーム(OS)がポピュラーなものなら大抵バイナリーパッケージが用意されていると思います。OSSのプロジェクトに近い場所に用意されていることもあれば、プラットフォームの提供元のサイトからダウンロードできたりといろいろではないでしょうか?
昔からの傾向だと思うのですがOSSはソフトウェア開発環境として最もポピュラー(?)なUnix系のプラットフォーム前提で作られることが多いような気がします。ですのでUnix/Linuxを使っていると代表的なものであればわざわざ自分でビルドしなくていいことが多いように思います。またWindowsやMacなど有名なプラットフォームだとそれ用にビルドしたものが配布されていることも多いと思います。ただプラットフォームの違いにより一部の機能が違っていたりすることもまたよくあるかもしれません。
投稿2017/01/15 01:53
総合スコア18392
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/15 12:10
2017/01/15 12:28 編集
2017/01/15 14:42