Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

CentOS7にSSLの証明書をインストールする

More than 3 years have passed since last update.

なんのために何をしたか?

なにが問題?

デフォルトで配布されている以外のルートCA証明書が必要なサイトになんやかんやするには自分でルーツCA証明書を設定する必要があります。

たとえば,経産省のサイト( https://wwws.meti.go.jp )を wget や PHP の file_get_contents で取得しようとしても失敗することがあります。

たとえばこんなエラーが出ます

WGETの場合
wget https://wwws.meti.go.jp/interface/honsho/committee/index.cgi/committee
 --20XX-YY-MM H:i:s--  https://wwws.meti.go.jp/interface/honsho/committee/index.cgi/committee
 wwws.meti.go.jp (wwws.meti.go.jp) をDNSに問いあわせています...
 wwws.meti.go.jp (wwws.meti.go.jp)|23.218.21.190|:443 に接続しています... 接続しました。
 エラー: wwws.meti.go.jp の証明書(発行者: `/C=JP/O=Japanese Government/OU=GPKI/CN=ApplicationCA2 Sub')の検証に失敗しました:
  自己署名証明書です。
 wwws.meti.go.jp に安全の確認をしないで接続するには、`--no-check-certificate' を使ってください。
PHPの場合
PHP Warning:  file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in ***
PHP Warning:  file_get_contents(): Failed to enable crypto in ***
PHP Warning:  file_get_contents(https://wwws.meti.go.jp/interface/honsho/committee/index.cgi/committee): failed to open stream: operation failed in ***

どうする?

CentOSにルートCA証明書を設定しましょう :)

どうやって?

1.証明書を取得しましょう。

先に挙げた経産省の例だと,政府認証基盤(GPKI) ( http://www.gpki.go.jp/ )のアプリケーション認証局2を使っていますので,「アプリケーション認証局2(Root)の自己署名証明書( http://www.gpki.go.jp/apca2/APCA2Root.der )」と,ついでに「アプリケーション認証局2(Sub)の自己署名証明書( http://www.gpki.go.jp/apca2/APCA2Sub.der )」を取ってきます。

2. CentOSに設定しましょう。

まずは,適切な置き場に配置します。

 # cp APCA2Root.der /usr/share/pki/ca-trust-source/anchors
 # cp APCA2Sub.der /usr/share/pki/ca-trust-source/anchors

CentOSに配置したことを教えてあげます。

 # update-ca-trust extract

おしまい。

hkoshiba
Why not register and get more from Qiita?
  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