Apache起動時の秘密鍵パスフレーズ省略方法

このQ&Aのポイント
  • Apache起動時に秘密鍵パスフレーズを省略する方法について調査しました。
  • 既存のキーファイルからパスフレーズを取り除き、別名でファイルを作成し、httpd.confで指定することで、SSL起動時にパスワード入力を省略することができます。
  • また、パスフレーズなしの鍵を作成する方法やパスワードを記述したスクリプトファイルを使用する方法も一般的です。
回答を見る
  • ベストアンサー

Apache起動時に秘密鍵パスフレーズを省略したい

ベリサインで取得していただいた、秘密鍵をインストール後、アパッチの再起動を行うと、SSL起動時に毎回パスワードが聞かれます。 http://support.6web.ne.jp/archives/15 上記サイトを確認したところ、既に作成されたキーファイルよりパスフレーズをとり、別名で作成されたファイルをhttpd.confで指定するとのことですが、再度、CSRをベリサインに送付し、証明書を取得し直す必要はないのでしょうか。 また、このサイトに記述されている #Enter pass phrase for ./2011key.pem について、openssl文にて既にパスフレーズなしの鍵が作成されていると思いますが、この文を実行すると、パスフレーズなしで作成されたファイルにパスフレーズが格納される認識で正しいでしょうか。 また、他にもパスワードを記述したスクリプトファイルを用意する方法なども存在するらいしいのですが、一般的はどのような方法がよいかも教えていただけたら幸いです。 よろしくお願いいたします。

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

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.2

> 上記サイトを確認したところ、既に作成されたキーファイルよりパスフレーズをとり、別名 > で作成されたファイルをhttpd.confで指定するとのことですが、再度、CSRをベリサインに > 送付し、証明書を取得し直す必要はないのでしょうか。 ありません。パスフレーズを外すこと=キーペアを変更することではありませんので。 ちなみに、後からパスフレーズを設定する(暗号化)することもできます。 > また、このサイトに記述されている #Enter pass phrase for ./2011key.pem について、 > openssl文にて既にパスフレーズなしの鍵が作成されていると思いますが、この文を実行す > ると、パスフレーズなしで作成されたファイルにパスフレーズが格納される認識で正しい > でしょうか。 その認識で構いません。 httpd.confまたはhttpd-ssl.conf に下記の設定を追加し、pp-filterは実行すると パスワードを出力するようにします。 SSLPassPhraseDialog exec:/etc/httpd/conf/pp-filter > また、他にもパスワードを記述したスクリプトファイルを用意する方法なども存在する > らいしいのですが、一般的はどのような方法がよいかも教えていただけたら幸いです。 まず、作成したキーペアのパスフレーズを後から解除するくらいなら、最初から パスフレーズを設定(暗号化)しなくて構いません。(yoroshiku_さんは既に 暗号化したキーペアで申請されたということなので、今回は仕方がありませんが) ↓キーペアをこんな風なコマンドで作りませんでしたか? -aes256 のところは、 -des3 とかも指定できますが、これが暗号化の設定です。 openssl genrsa -t rsa -aes256 2048 例えば、下記ならパスフレーズの設定を求められません。 openssl genrsa -t rsa 2048 次に、パスフレーズは解除せず、pp-filterを使用する方法。 実行してパスフレーズが出てくるのであれば、パスフレーズを設定している 意味がほとんどないような気もします。 -- #!/bin/sh echo 'password' -- ※一般ユーザでapacheを起動する場合は、pp-filterに実行権限のみ与えることで、 プログラムの中に書かれているパスフレーズを読めなくできるので、その場合は 意味があるでしょう。ただし、その場合はpp-filterをCなどで書いてコンパイル する必要があります。 ということで、どちらの方法もイマイチですが、自動入力ということはサーバ内に パスワードを生成できる情報を置いておく必要があるのですから、イマイチでも 仕方がありません。結局のところ、最初からパスフレーズを暗号化しないのが シンプルで良いのではないでしょうか。

yoroshiku_
質問者

お礼

詳細な説明ありがとうございます。 理解できました。 パスワードをはずすぐらいなら、初めからつけないのが一般的とのこと ですね。 勉強になりました。

その他の回答 (1)

  • wingstar
  • ベストアンサー率37% (102/275)
回答No.1

ベリサインに聞いてみては? その方が早いし、正確な答えが返ってくると思います。 証明書作成後1ヶ月くらいだったら、作り直しとか出来たような記憶があります。 間違ってたらすみません。

関連するQ&A

  • 秘密鍵パスフレーズ紛失、新CSRにて作成について

    現在、さくらVPSにて利用中のサーバを独自SSLにて運用しておりました。 期限が切れてしまい、更新を行おうとしましたところ、 調べていくうちに秘密鍵のパスフレーズを紛失してしまったということが発覚致しました。 そのため、今回の更新は新しい秘密鍵の作成、そのカギを基にCSRを作成して、 SSL証明書を取得したいと考えております。 そこで、質問がございます。 現在、Apacheサーバを起動している状態でございます。 起動状態にて新しい秘密鍵作成→CSRの発行を行った場合、 現在のApacheサーバの動作が止まるなどの不具合は発生いたしますか? または、Apacheサーバの再起動が必要になりますでしょうか。 現在のサーバ運用に影響がなければ、Apache起動している状態にて、 1.秘密鍵の再作成 2.CSRの発行 3.SSLの発行申請 ※3まで発行できていれば、 設定を新に変更し、Apacheの再起動を行いたいと考えております。 このような場合は、秘密鍵の作成、CSRの作成、SSLの設置は、 新規と同じような操作手順でよろしいでしょうか。 SSL発行会社は同じところを使用する予定です。 秘密鍵の再作成は他のディレクトリにて行いますので、 上書き等は発生しないという前提でお願い致します。 詳しい方、ご教授をお願いいたします。

  • 秘密鍵の比較について

    下記2つの秘密鍵を比較しようとしています。   1.CSR作成時に同時に作成される秘密鍵   2.認証局より受領した証明書と1.の秘密鍵より作成した.p12ファイルから、下記のコマンドで抽出した秘密鍵      openssl pkcs12 -in input.pfx -nocerts -out output_key.pem(証明書名はサンプルです。) 同じ秘密鍵なはずなのに、catで開いた証明書の中身が合致しません。 なぜ合致しないかわかる方ご教示いただけないでしょうか。

  • Apache起動時にエラー

    質問があります。 ApacheをSSLで起動し、IEからアクセスしようとしたら反応が遅く また、エラーログが大量に出ています。その後、表示ができませんと IEから出ています。 【ログ内容】 [notice] child pid XXXX exit signal Segmentation fault (11) また、Googleで調べたら、勘違いだったら申し訳ありません。 PHPからみで出るとかあったのですが、今回、とくにインストールしていません。知っている方が、いらっしゃったら教えてください。 環境としては、 OS Solaris10 Apache2.2.14とOpenSSL0.9.8lをソースでインストール 特に問題なくインストールできています。 切り分けで、OpenSSLをサンフリーからパッケージでインストールし Apacheをソースで再度、コンパイルしても現象は一緒でした。 OpenSSLの鍵・証明書の作成としては以下を実行 openssl genrsa -des3 -out server.key 1024 openssl rsa -in server.key -out server.key openssl req -new -key server.key -out server.csr -days 365  openssl x509 -in server.csr -out server.pem -req -signkey  server.key -days 365 httpd-ssl.confの設定 SSLCertificateFile /usr/local/apache2/conf/server.crt ↓ SSLCertificateFile /usr/local/apache2/conf/server.pem SSLCertificateKeyFile /usr/local/apache2/conf/server.key ↓(そのまま) SSLCertificateKeyFile /usr/local/apache2/conf/server.key http.confの設定 #Include conf/extra/httpd-ssl.conf ↓ Include conf/extra/httpd-ssl.conf 以上、よろしくお願いします。

  • SSL導入でCSRを生成時のPEMフレーズ

    ■環境 サーバー:Apache + mod_ssl 初めてSSLサーバー証明をインストールします。 色んなサイトを見て勉強しながらやっているのですが、 どうしても腑に落ちないというか、どうもすっきりしない点がありましたので、 お知恵をお借りしたく、質問させて頂きました。 気になる部分はCSRを生成するコマンド、以下となります。 # mkdir /usr/local/certs # cd /usr/local/certs # openssl req -new -newkey rsa:2048 -nodes -keyout 「名前」.key -out 「名前」.csr Generating a 2048 bit RSA private key 参考にしたサイト http://www.digicert.ne.jp/howto/csr/csr_apache.html http://cspssl.jp/support/csr_apache.html 上のコマンドだと、PEMフレーズを入力せずに、2ファイルが生成されます。 しかしながら、その他の様々なサイトでは 先にパスフレーズを登録して、例えば、、 # openssl req -new -key 「名前」.key -out 「名前」.csr Enter pass phrase for server.key: このようなコマンドに続いてパスフレーズを聞かれるという形になっています。 また各種サイトには、PEMフレーズは省略も出来るとあります。 セキュリティ度は下がるが、再起動時に何度も入力しなくて済むという利便性があるとか。 もしかすると前者では、PEMフレーズが省略されたCSRを生成しているのかと 考えたのですが、私の考えで合っているのでしょうか。 それとも、前者のCSRで認証局に申請した物は、作り直さなくてはならないでしょうか。 素人質問で大変申し訳ないと思いますが、 ちょっと頭が混乱してしまってまして どなたかヒントを頂ければありがたいです。 すいませんがよろしくお願いします。

  • CSR ファイルを作る際に必要な秘密鍵ファイル

    CSR ファイルを作る際に必要な「秘密鍵ファイル」って、「サーバの公開鍵」なのでしょうか? http://www.ibm.com/developerworks/jp/websphere/library/web/web_security/2.html こちらのサイトの説明だと、CSRに埋め込まれる鍵は、サーバの公開鍵です。 しかしながら、こちらの手順書 https://www.cybertrust.ne.jp/SureServer/apply/Apache_Linux.pdf において、CSR ファイルの作成に必要なのは「秘密鍵ファイル」と呼ばれるファイルです。 とても混乱しているのですが、本当はどうなっているのでしょうか。 自分としては、「秘密鍵ファイル」は、そう呼ばれているだけで、中身はサーバの公開鍵が含まれている。 というふうに思っています。 これは間違いでしょうか。

  • 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をインストールするような解説を見かけましたので 新たにソースから入れたほうがよいのでしょうか?

  • openSSLで秘密鍵ファイルエラー

    はじめまして。 Solaris10で、OpenSSLとApacheを導入し、認証ファイル作成で エラーになりました。 認証局ファイル作成(CA) cd /usr/local/ssl/misc/CA.sh -newca Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: unknown option -selfsign usage: ca args -verbose - Talk alot while doing things -config file - A config file -name arg - The particular CA definition to use -gencrl - Generate a new CRL -crldays days - Days is when the next CRL is due -crlhours hours - Hours is when the next CRL is due -startdate YYMMDDHHMMSSZ - certificate validity notBefore -enddate YYMMDDHHMMSSZ - certificate validity notAfter (overrides -days) -days arg - number of days to certify the certificate for -md arg - md to use, one of md2, md5, sha or sha1 -policy arg - The CA 'policy' to support -keyfile arg - private key file -keyform arg - private key file format (PEM or ENGINE) -key arg - key to decode the private key if it is encrypted -cert file - The CA certificate -in file - The input PEM encoded certificate request(s) -out file - Where to put the output file(s) -outdir dir - Where to put output certificates -infiles .... - The last argument, requests to process -spkac file - File contains DN and signed public key and challenge -ss_cert file - File contains a self signed cert to sign -preserveDN - Don't re-order the DN -noemailDN - Don't add the EMAIL field into certificate' subject -batch - Don't ask questions -msie_hack - msie modifications to handle all those universal strings -revoke file - Revoke a certificate (given in file) -subj arg - Use arg instead of request's subject -extensions .. - Extension section (override value in config file) -extfile file - Configuration file with X509v3 extentions to add -crlexts .. - CRL extension section (override value in config file) -engine e - use engine e, possibly a hardware device. -status serial - Shows certificate status given the serial number -updatedb - Updates db for expired certificates もしかして、上記でエラーですか? 次に、証明書署名要求ファイル作成(CSR) cd /usr/local/ssl/misc/CA.sh -newreq openssl req -in newreq.pem -text →確認したらOKでした。 openssl rsa -in newreq.pem -text 確認した所、エラーになります。 unable to load Private Key 18943:error:0906D06C:PEM routines:PEM_read_bio:no start line:/on10/build-nd/F10U8B6/usr/src/common/openssl/crypto/pem/pem_lib.c:637:Expecting: ANY PRIVATE KEY Googleで、調べているんですが、よくわかりません。 ご存知の方がいたら、教えてください。 よろしくお願いします。

  • SSHでの公開鍵認証接続時のログイン画面

    CentOSクライアントからのCentOSサーバへ公開鍵認証によるSSH接続をしたいと思っています。公開鍵認証なのでパスワードではなくパスフレーズでの認証ができるようにしたいです。 しかし、設定操作を一通りやってクライアントからサーバへログインしようとすると添付画像のとおり「パスワード」と書かれたログイン画面が出てきます。 一応パスフレーズとして設定した文字列を入力しないとログインできないようにはなってるのですが、これはちゃんと公開鍵認証ができるようになっているのでしょうか。また、ログイン時に入力した文字列はパスワードではなくパスフレーズとして登録されているのでしょうか。 以下、環境/前提条件および操作手順の詳細です。 ■環境/前提条件 ・OSは両方ともCentOS6.5 ・OpenSSHのバージョンは両方とも5.3 ・仮にサーバ側のホスト名をtestserver、その中にあるユーザー名をtest1とする ■操作手順 (1)クライアント側でssh-keygenでid_rsaとid_rsa.pubをローカルに作成し、パスフレーズを登録。 (2)サーバ側で  .ssh/authorized_keysを作成し、   chmod 700 .ssh  chmod 600 .ssh/authorized_keys  を実行 (3)クライアント側で以下のコマンドを打ち公開鍵ファイルをサーバへ転送  cat .ssh/id_rsa.pub |ssh test1@testserver 'cat >>  .ssh/authorized_keys' (4)両マシーン共再起動させた後、クライアントからサーバへ   ssh test1@testserver  でログインしようとしたら添付画像が出てきた。 パスワード欄にはtest1@testserverのパスワードではなく、(1)で登録したパスフレーズを入力しないとログインできないようになっているが、 このログイン画面に書かれてるのがパスフレーズではなくパスワードとなっているのが気がかりです(パスフレーズとして認識されていない?) これはちゃんと公開鍵認証ができるようになっているのでしょうか。また、ログイン時に入力した文字列はパスワードではなくパスフレーズとして登録されているのでしょうか。 目標が達成できていなければ、問題点および解決策を教えてくださいますようお願いします。

  • openssl関数

    <?php $dn = array( 'countryName' => 'JP' ,'stateOrProvinceName' => 'Tokyo' ,'localityName' => 'Shibuyaku' ,'organizationName' => 'HOGE' ,'organizationalUnitName' => 'hogehoge' ,'commonName' => 'example.com' ,'emailAddress' => 'hoge@example.com' ); $pkeypass = '1234'; $numofdays = 365; $pkey = openssl_pkey_new(); $csr = openssl_csr_new($dn, $pkey); $sscert = openssl_csr_sign($csr, null, $pkey, $numofdays); $publickey = null; $privatekey = null; $csrStr = null; openssl_x509_export($sscert, $publickey); openssl_pkey_export($pkey,$privatekey,$pkeypass); openssl_csr_export($csr, $csrStr); echo $publickey; // 公開鍵 echo $privatekey; // 秘密鍵 echo $csrStr; // CSR 上記のプログラムで生成される公開鍵と秘密鍵は乱数的に生成されているのでしょうか? あと $pkeypass = '1234'; と echo $csrStr; の部分がどういった理由で記述されているのかイマイチわかりません。。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • 複数人にSSHの秘密鍵と公開鍵を設定

    VPSを借りてまして、CentOS6.2です。 fooユーザとbarユーザとhogeユーザに、SSHの秘密鍵と公開鍵を設定するにはどうすれば可能(あるいはすべき)なのでしょうか? ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/sorai/.ssh/id_rsa): // ファイル作成場所 Enter passphrase (empty for no passphrase): // パスフレーズを入力する Enter same passphrase again: // パスフレーズをもう一度入力する というのを、その人数分行わないとできないでしょうか?あるいはそうすべきでしょうか? 今、/root/.ssh/authorized_keysを /home/miya/.ssh/autauthorized_keysにコピーして、rootのとき成功した秘密鍵で、 miyaアカウントでSSHログインしようとしてもだめでした。 (ただ、パーミッションやユーザownerをどうすべきかわかりません) よろしくお願い申し上げます。