OpenSSLについての準備と導入方法

このQ&Aのポイント
  • SSL導入のための勉強&準備をしています。CentOS5.5でApache+OpenSSLを使ってSSLを導入する予定です。ベリサインの認証局を利用する予定です。
  • /usr/local/ssl/binディレクトリが存在しないため、/usr/binディレクトリで作業を行っていますが、問題ないでしょうか?既にOpenSSLがインストールされていても、ソースからのインストールを検討する声もあるようです。
  • ベリサインの導入手順を参考にしています。詳細な手順はベリサインの公式サイトをご確認ください。
回答を見る
  • ベストアンサー

OpenSSLについて

現在、SSL導入に向けて勉強&準備をしています。 CentOS5.5でApache+OpenSSLを使ってSSLを導入しようと考えていまして 認証局はベリサインを利用しようと思っています。 以下のベリサインの導入手順を参考に作業をしています。 https://www.verisign.co.jp/ssl/help/csr/capache_new.html # rpm -qa | grep openssl でOpenSSLが入っていることを確認しましたので 上記手順書の最初の秘密鍵を作成しようとしたのですが /usr/local/ssl/bin というディレクトリがなく、whichコマンドでパスを調べ /usr/bin/にあることがわかり そのディレクトリに読みかえて作業を行い始めましたが、 これで問題ないのでしょうか? ちなみに、この件で色々ぐぐってみるとOpenSSLが既に入っていても ソースからOpenSSLをインストールするような解説を見かけましたので 新たにソースから入れたほうがよいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.2

>/usr/bin/にあることがわかり >そのディレクトリに読みかえて作業を行い始めましたが、 >これで問題ないのでしょうか? /usr/binに秘密鍵ファイルなどが作成されるのは……あまり好ましくないかと思われます。 opensslのrpmパッケージでインストールを行った場合、/etc/pki以下に公開鍵などのファイルが格納されているかと思われます。 まぁ、変なディレクトリ(公開ディレクトリとか/tmp(ファイルが削除される可能性がある)とか)でなければ、まぁ大丈夫だとは思いますが……。 /usr/local/certsの下で作業(パソコンおやじさんのサイト例 http://www.aconus.com/~oyaji/www/certs_linux.htm )していたり、 /etc/pki/tls/certsの下で作業(CentOSで自宅サーバ構築のサイト例 http://centossrv.com/apache-ssl.shtml )していたり…といろいろありますね。 >ちなみに、この件で色々ぐぐってみるとOpenSSLが既に入っていても >ソースからOpenSSLをインストールするような解説を見かけましたので >新たにソースから入れたほうがよいのでしょうか? パッケージ管理されている状態でソースからインストールする場合、依存関係でかなり大変なことになることが予想されます。 それらを1つずつ解決し、安全に構築できる自信がありますか? apache(というかmod_ssl)なども変更になるでしょうし、ディストリビュータからセキュリティパッチが公開された場合も自分でビルドし直しなど、全ての対策を行う必要があります。 # パッケージ管理から外れるのですから、ディスリビュータから提供されるものが整合性の取れる状態になっている保証がありません。

like-linux
質問者

お礼

早速、ご教授いただきありがとうございます。 私の現在の知識ではソースからインストールは見送ったほうがよさそうですね。 教えていただきましたサイトを参考にしてSSLを導入してみます。

その他の回答 (1)

回答No.1

あなたの場合、まず、ここから 「デーモンとは」 http://search.yahoo.co.jp/search?b=1&n=10&ei=UTF-8&fr=ie8sc&p=Linux+%22%E3%83%87%E3%83%BC%E3%83%A2%E3%83%B3%E3%81%A8%E3%81%AF%22 それを理解できたら、その起動要件、仕組みを理解してください。 「OpenSSLのデーモン」とは http://search.yahoo.co.jp/search?p=Linux+%22%E3%83%87%E3%83%BC%E3%83%A2%E3%83%B3%22+%22OpenSSL%22&aq=-1&oq=&ei=UTF-8&fr=ie8sc&n=10&x=wrt 通常デーモンなど、サーバークライアントモデルのモジュールでは、 http://search.yahoo.co.jp/search?p=UNIX+Linux+%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%83%A2%E3%83%87%E3%83%AB&aq=-1&oq=&ei=UTF-8&fr=ie8sc&n=10&x=wrt http://itpro.nikkeibp.co.jp/word/page/10001814/ ラーパーなる物があるか、特定ユーザーで起動するため、そのユーザー固有のプロファイルで(.cshrc .profile)で環境が整えられています。環境が整えられているとは、コマンドが在るフォルダーのパスや、ライブラリーがデーモンの起動とともに、メインのモジュールが理解できていて、呼び出すことが可能と言う意味です。 インストールが成功していれば、サンプル設置記録や、ブログにある、パスを示していなくても問題在りません。 ただし、それは、必ずしも100%そうであるとはいいきれない部分もあります。市販ソフトなら、バグとして (フリーや、シェアーウェーのソフトは2005年ごろまで50%がデフォルト以外のフォルダーに設置すると問題があった。開発者が馬鹿なんで)、 直してもらえますが、対処のソフトはオープンソースなので自分で治すか、報告して、いつか直るのを待つしかありません。 OpenSSLクラスになれば、かなりの実績があり、業務用、基幹用としてもつかわれているので、そういった初期問題は、すでにクリアーされています(歴史があり、かなり昔からある)。 また /usr/local/ssl/bin などLinux、UNIX系は、シンボリックリンクなど実態は別のところに在る場合があります。実態は、/usr/local以下にあり、コマンドを/usr/binの下にハードリンク又はシンボリックリンクで置くなんて事はよくあります。 path の順番なんで、どちらを最初にヒットさせたいかは、その環境変数で設定してください。 例: http://search.yahoo.co.jp/search?b=1&n=10&ei=UTF-8&fr=ie8sc&p=Linux+%22%2Fusr%2Flocal%22+%22%E3%82%B7%E3%83%B3%E3%83%9C%E3%83%AA%E3%83%83%E3%82%AF%E3%83%AA%E3%83%B3%E3%82%AF%22 http://www.atmarkit.co.jp/flinux/rensai/linuxtips/119setlink.html なんかは、そうですね。 >ソースからOpenSSLをインストールするような解説 これは、ちょっと意味合いが違います。Javaもそうですが、複数設置できて、その利点は、複数のバージョンを、それぞれのアプリで選択して使用できるので、互換性が無い場合、そのようにします。 これを可能とするのが、ラッパーなど、環境変数や、ユーザーごとのプロファイルです。 いくつも入れてもいいですが、その分パソコンのリソースを使うので、パフォーマンスに影響します。

like-linux
質問者

お礼

詳しくご説明いただき、ありがとうございます。 教えていただきましたサイトなどをもとに、知識をつけていきたいと思います。

関連するQ&A

  • opensslのrpmインストールとsourceインストールの競合回避について

    openssl-0.9.7aがrpmでインストールされた状態で、ソースから全てデフォルトでconfigしたopenssl-0.9.7eをredhat9にインストールしてしまいました。 ディレクトリは以下のように異なっています。 /usr/share/ssl : openssl-0.9.7a /usr/local/ssl : openssl-0.9.7e どのような手順で整合性をとればよいでしょうか? make installでインストールされたファイルの一覧が簡単に分かる方法はありますでしょうか?

  • opensslを削除したい

    Redhat7.1でwebサーバ(apache)を立てています。 apacheをrpmで導入したら、openssl等も組み込まれてしまいました。 Netcraft(http://news.netcraft.com/)で見たら、mod_sslやらOpenSSLやらのバージョンが出てきています。 そこで、単なる素のapacheのサーバなので、セキュリティホールが気になるopensslは外したいのですが...。 そこで、apacheをRPMではなくソースからmakeした場合、 使っていない(と自分では思ってますが...) opensslは削除してしまってよいのでしょうか? それとも、そもそもRPMでの導入時にopenssl等を使わない(Netcraftに出てこない)ようにする方法があるのでしょうか?

  • opensslのソースインストールについて

    ご覧頂きありがとうございます。 表題の件についてですが、 先日公開されたOpneSSLの脆弱性対応(CVE-2016-0800)の対応の為、 openssl-1.0.1sをインストールしたのですが、 インストール後にウェブサーバを再起動しようとしたら以下のエラーが発生しました。 # /usr/local/apache2/bin/apachectl configtest httpd: Syntax error on line 55 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_ssl.so into server: /usr/local/apache2/modules/mod_ssl.so: undefined symbol: SSLv2_client_method httpd.conf 55行目: LoadModule ssl_module modules/mod_ssl.so エラー内容をウェブで検索しましたが有力な情報は得られませんでした。 もしおわかりの方がご教示いただけないでしょうか。 環境: CentOS6.7 Apache 2.2.31 Openssl-1.0.1s 不足情報などありましたらご指摘ください。 よろしくお願いいたします。

  • Apache脆弱性対策(openssl)

    現在使用しているサーバにてApacheのバージョンが2.2.27で脆弱性があり、2.2.29にバージョンアップをしようとしているのですが、そのサーバにはOpenSSLも設定してあり、こちらはこの作業の前にopenssl0.9.8eの脆弱性対策としてopenssl0.9.8zcを配置し、モジュールをmakeまでしてある状態で、Apacheのバージョンアップの際にmake installを行い、Apacheにも適用させようとしているのですが、ビルドの前にspecファイルに「--with-ssl=/usr/local/ssl/bin」(←opensslモジュールが存在する場所) を追加したのですが、OpenSSLが実際に適用されていません。他に設定などが必要なのでしょうか。また確認の際に、logでバージョン確認をしたのですが、他に確認する方法はありますでしょうか。(openssl versionコマンドであると、表示だけ変わっている状態なので意味ないようです。)

  • CentOs5.8Apacheのリビルド

    CentOS5.8でSNIを使おうと思っています。 そのためのOpenSSL1.0.1eはインストールできました そのOpensslをApacheに適用させるために既存のApacheのリビルドをしたいと思っています ですが、現在のApacheの設定をそのままにリビルドする方法はありますか? 現在1日はまってしまい、非常に困っています。 下記OpenSSLの更新作業 ===================================================== # wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz # tar zxvf openssl-1.0.1e.tar.gz # cd openssl-1.0.1e # ./config enable-tlsext -fPIC shared # make # make test # make install ※デフォルト/usr/local/ssl/にインストールされるみたいです。 ・まずはパスを認識させます # echo /usr/local/ssl/lib > /etc/ld.so.conf.d/openssl.conf # ldconfig ・既存のopensslの実行ファイルを今回インストールした物と変更します。 # cd /usr/bin # mv openssl openssl.old # ln -s /usr/local/ssl/bin/openssl ・シェアードライブラリが正しくリンクできているか確認 # ldd /usr/local/ssl/bin/openssl linux-vdso.so.1 => (0x00007fff49bf2000) libssl.so.1.0.0 => /usr/local/ssl/lib/libssl.so.1.0.0 (0x00002b5327442000) libcrypto.so.1.0.0 => /usr/local/ssl/lib/libcrypto.so.1.0.0 (0x00002b53276a7000) libdl.so.2 => /lib64/libdl.so.2 (0x0000003f36000000) libc.so.6 => /lib64/libc.so.6 (0x0000003f35400000) /lib64/ld-linux-x86-64.so.2 (0x0000003f34c00000) =================================================================================== 宜しくお願い致します。

  • アプリケーションのインストールについて

    既存のアプリケーション(openssl)のバージョンが古いので、 新しいアプリケーションのインストールをしようと思ったのですが、 何故かうまくいきません。どなたか教えて下さい。 そもそもLinuxは、旧のアプリを残したまま 新のアプリをインストールする事できるのでしょうか? 旧のアプリを"rpm -e openssl"とコマンドを打つと、"xxxのパッケージに必要とされています" と表示され、別のパッケージにリンクされているようでアンインストールするのを 取り止めました。。。。それとも旧から新規に切り替える方法があるのでしょうか?・・ "rpm -Uhv openssl"と打つと、そんなファイルやディレクトリはありませんと返ってきます。 インストール後、パスを通すため、 /etc/ld.so.confに以下を追加 "/usr/local/ssl/lib" /etc/bashrcに以下を追加 "EXPORT PATH=$PATH:/usr/local/ssl/bin" 確認をするため [root@localhost root]# openssl version と打ち込むと、旧が表示されてしまいます。 どうすれば最新のopensslが起動するのでしょうか?・・・・ 恐れ入りますが教えて下さい。。 先週から悩んでいて、困っております。

  • Apache OpenSSL PHP でエラー

    CentOS 5.1にOpenSSL-0.9.8g、httpd-2.0.61、Postgres8.1.10、php-5.2.5でWEBサーバを作っているのですが、不思議なエラーが出てうまくいきません。 現象としては以下の通りです。 htdocs_http = httpコンテンツ htdocs = httpsコンテンツ apacheをstartsslで起動して、htdocsにphpinfoを 出力するプログラムを作成した後アクセスすると コンテンツのTOPに Keep-Alive: timeout=15, max=98 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html ae03 などのメッセージが出力されます。 Apacheとphpを何度も再インストールしたのですが解決できません。 誰か似たような現象を起こった方や、 解決策を知っている方教えていただけませんか。 インストールした順は以下の通りです。 1. OpenSSL 2. httpd 3. Postgres 4. php インストールしたオプション 1. OpenSSL # ./config -fPIC shared 参考にしたサイト http://uguisu.skr.jp/Windows/apache2.html 2. Apache # ./configure \ # --enable-so --enable-ssl --with-ssl=/usr/local/ssl 3. Postgres # ./configure のみのオプションなし。 4. php # ./configure \ # --enable-mbstring=all --enable-mbregex \ # --enable-sockets --enable-ftp \ # --with-apxs2=/usr/local/apache2/bin/apxs \ # --with-pgsql=/usr/local/pgsql --without-mysql \ # --with-gd --enable-gd-native-ttf \ # --with-freetype-dir=/usr --with-jpeg-dir=/usr \ # --with-zlib=/usr --with-png-dir=/usr \ # --with-imap=/usr --with-kerberos=/usr \ # --with-imap-ssl --with-pdo-pgsql=/usr/local/pgsql \ # --with-mcrypt=/usr/local

    • 締切済み
    • PHP
  • apache OpenSSLの格納場所は?

    当方、windows7 32bitでwwwサーバを組んでいる超初心者です。 apacheは2.2.25、Active Perlは5.16.3.1で OpenSSLは1_0_1です。、 c/apache softoware Foundation c/perl c/openssl 以上の場所にインストールしています。 http://tako.jugem.cc/?eid=719 これの通りやって openssl versionとコマンド入力しても問題は発生しませんでした。 ここまでは順調でした。 しかし 私のダウンロードしたOpenSSLをインストールしても、 openssl.confがなかったので http://www.gadgety.net/shin/tips/win/apache2.html のソースをコピーペーストして、 openssl.confとしてc/apache softoware Foundation/apache2.2/conf/sslフォルダに 入れました。 openssl req -config openssl.cfg -new -out ./ssl.key/server.csrというコマンドを DOS窓に打ち込んでも指定されたパスが見つかりません。とメッセージが出ます。 私の頭で考えられるのはopenssl.confファイルの場所が違う、或いは拡張子の問題か? と考えていますが、お手上げ状態です。 なにか、これを見てお分かりになった方、教えてくださいませんか? 何が間違っているのでしょうか?

  • windows openSSLのCA.plについて

    windows2000proの環境にOpenSSLを導入して認証局を作成しようと考えております。 CA.plコマンドを実行しても空行が表示され動作しない原因がわからず困っております。 C:\OpenSSL\bin\CA.pl -newca [ 空行 ] C:\OpenSSL\bin\ 動作環境は OS:windows2000proSP4 ActivePerl-5.12.2.1202 Win32(perl -vで動作確認済み) Win32OpenSSL-0_9_8p(openssl versionで動作確認済み) openssl.cfg のCA_default ・usr_cert ・v3_ca 修正済み CA.pl の先頭行を#!c:/perl に修正済み です。ご教授よろしくお願い致します。

  • FedoraCore5+SSL環境構築したいのですが。

    最近Linuxをさわり始めたばかりの初心者です。 実運用ではなく、勉強環境としてFedoraCore5にてSSL対応にしたいのですが、 どのようにSSLをSetupすべきか?について悩んでいます。 Apacheの設定についてはできています。 rpmを確認した所、以下のVersionとなっています。 [root@linux ~]# rpm -qa | grep ssl openssl-0.9.8a-5.2 [root@linux ~]# rpm -qa | grep httpd httpd-2.2.0-5.1.2 この状態で今後どのように進めていけばよいか?が わかりません。 ApacheとOpensslは一旦削除して ・Apache ・OpenSSL ・mod_ssl などを再度インストールする必要などがあるのでしょうか? Fedoracoreだから可能/不可能など有り得るのでしょうか? 以下の情報で確認してみましたが、環境などによって 異なるのかと思うと手の付け所がわかりません。 Web(以下など) http://www.atmarkit.co.jp/flinux/rensai/apache04/apache04a.html 本、 Redhat Linux Internet Server(ソフトバンク) SSL/TLS導入ガイドブック(MYCOM) SSL設定の最初のとっかかりと、勉強のしどころについて ご教授頂けますでしょうか?