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

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

ただいまの
回答率

90.49%

  • PHP

    20771questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • CentOS

    2759questions

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

  • Apache

    1854questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

オレオレ証明書で認証させると、「証明書ベースの認証に失敗する」

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 13K+

hagetak

score 10


 目的


① オレオレ証明書・クライアント証明書を作成する。(済)
② 特定のページにクライアント証明書を利用してアクセスする。(それ以外は省く)

 環境について


前回の質問を参照してほしいです。
https://teratail.com/questions/15400

証明書関係の作成は、以下のサイト通りに実行しました。
http://www.webtech.co.jp/blog/optpix_labs/server/1780/
http://www.webtech.co.jp/blog/optpix_labs/server/1159/

vim ssl.conf(認証関係のみ)
        SSLCertificateFile /etc/httpd/conf/ssl.crt/trac.crt
        SSLCertificateKeyFile /etc/httpd/conf/ssl.key/trac.key

        <Directory /var/www/html/trac/>
        PassengerEnabled Off
        # SSLOptions +StdEnvVars
        allowoverride All
        Options -MultiViews
        SSLRequireSSL
        SSLVerifyClient require
        SSLUserName SSL_CLIENT_S_DN_CN
        Satisfy Any
        SSLRequire %{SSL_CLIENT_S_DN_CN} in {"hagetak"}
        </Directory>

 発行した証明書


  • hagetak.p12(自身のPCにインストール済み)
  • trac.crt(上記のconf通りに配置済み/自身のPCにインストール済み)
  • trac.key(上記のconf通りに配置済み)

 エラー内容


http://www.webtech.co.jp/blog/optpix_labs/server/1780/
http://www.webtech.co.jp/blog/optpix_labs/server/1159/
通りの設定で、

[ Google Chrome]

1. ウェブページにアクセスすると、証明書選択画面が出る
2. 証明書(CommonName: hagetak)選択後、以下のエラーが出る

証明書ベースの認証に失敗しました
ERR_BAD_SSL_CLIENT_AUTH_CERT

このサーバーでは認証用の証明書が必要ですが、ブラウザから送信された証明書は承認されませんでした。証明書の有効期限が切れているか、サーバーがその発行元を信頼していない可能性があります。別の証明書がある場合はそちらをお試しください。ない場合は、別の発行元から有効な証明書を入手しなければならない可能性があります。

ログを確認すると以下のエラーが出力される.

> cat ssl_error_log 
[Tue Sep 01 17:30:20 2015] [error] [client 100.100.100.110] Re-negotiation handshake failed: Not accepted by client!?
[Tue Sep 01 17:30:26 2015] [error] [client 100.100.100.110] Certificate Verification: Error (20): unable to get local issuer certificate
[Tue Sep 01 17:30:26 2015] [error] [client 100.100.100.110] Re-negotiation handshake failed: Not accepted by client!?

なんの設定が足らないのでしょうか。

* パーミッションの設定
* クライアント証明書を特定のサーバに設置する?
* confに追加する?


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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

「Certificate Verification: Error (20): unable to get local issuer certificate」はクライアント証明書の CA 情報がサーバー側で確認できなかったのだと思います。

Apache httpd の設定で、SSLCACertificateFile に CA証明書を設定していますでしょうか?
設定している場合、クライアント証明書を発行した CA と同じ CA のものでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/01 19:38

    お早い回答ありがとうございます。設定していませんでした。CAの証明書は、pem形式しかないのですが、どのようにすればcrt形式に変換できるでしょうか?

    これまでどおりのコマンドで行うと以下のエラーが出ます。
    > openssl x509 -in certs/cacert.pem -out ca.crt
    ```
    Error opening Certificate certs/cacert.pem
    140140038588232:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('certs/cacert.pem','r')
    140140038588232:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
    unable to load certificate
    ```

    キャンセル

  • 2015/09/01 19:39

    別のファイルを指定していたみたいです。別のファイルを指定したところうまく生成されました。今から試してみます!ありがとうございます!

    キャンセル

  • 2015/09/01 19:50

    無事解決することが出来ました。
    以下のサイトを参考にした場合、ssl.confに
    > SSLCACertificateFile /etc/httpd/conf/ssl.crt/ca.crt
    追加する必要があります。そのca.crtは、以下のコマンドで作成することができます。

    > openssl x509 -in certs/cacert.pem -out ca.crt

    http://www.webtech.co.jp/blog/optpix_labs/server/1780/
    http://www.webtech.co.jp/blog/optpix_labs/server/1159/


    この度はありがとうございました。

    キャンセル

  • 2015/09/01 23:23

    あれ? PEM のままでいいはずです。

    キャンセル

0

解決済となりましたが、自己証明書を使わず、startssl や、WoSign Free SSLなどの無料の証明書を活用するというのもありかもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

関連した質問

  • 解決済

    【hosts】hostsファイルについて!

    お世話になっております。Ezです。 hostsについて教えてください! xxx.xxx.xxx.xxx      hoge.fuga.com のような形で登録すると hoge.

  • 受付中

    MYSQL SSL設定

    vagrantでcentos6.5にmysql5.44をいれて開発環境をつくりました。 mysqlにssl設定をしたのですがうまくいきません。 +---------------+

  • 解決済

    【Tomcat】と【Apache】の連携に関して

    前回の投稿内容で解決とまで いかなかったため、 改めてお伺いいたしたく投稿いたしました。 原因に関しては、前回の投稿から ApachではなくTomcatの方にあるのではと考えられ

  • 解決済

    サイトをSSL対応させようとしたらapacheが起動しなくなった

    お世話になっております。 ウェブサイトをSSL対応させようとしたらapacheが起動しなくなってしまいました。  環境 CentOS Linux release 7.3.

  • 解決済

    SSL接続設定について

    エラーの対処が分からず困っております。 現在 FreeBSD 10 の Apache 2.4.16 へSSLの接続の設定を行っております。 通常接続でWebページは問題なく

  • 受付中

    gitサーバを構築したい

    15時間でわかるGitを見ています。 その10時間目のGitサーバを立ててみようを書籍の通りにやっています。 CentOS6.9です。すでに他のサーバアプリが起動しています

  • 解決済

    nginx-websocketサーバーのSSL設定

    現在、websocketサーバーにnginxを導入してSSL化したいと考えています。 プロキシサーバーとしてSSL化のみをおこなう予定です。 初心者で、初めてnginxに触れるので

  • 解決済

    さくらのラピッドSSLをサブドメインに導入する方法は?

    専用サーバーでバーチャルホストによる下記の複数サイトを運営しています。 www.abc.com sp.abc.com mb.abc.com さくらのラピッドSSLをすべてのドメ

同じタグがついた質問を見る

  • PHP

    20771questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • CentOS

    2759questions

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

  • Apache

    1854questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。