質問するログイン新規登録

Q&A

解決済

2回答

1371閲覧

vagrant環境へのSlim4のインストールに失敗する

jackhase

総合スコア22

CentOS

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

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

PHP

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

Slim

SlimはPHPアプリケーションを開発するための軽量なマイクロフレームワークです。

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

0グッド

0クリップ

投稿2020/03/29 11:51

編集2020/03/29 11:59

0

0

vagrant環境へのSlim4のインストールに失敗する

実現したいこと

仮想化したCentOS環境ににPHPの軽量フレームワークであるSlim4をインストールしたい。

症状

概要:vagrant環境(CentOS)でSlim4を試したく、公式ドキュメントの手順に沿って以下のコマンドを実行したのですが、SSL関連のエラーに悩まされて先に進めません。

ディレクトリ構造
/home/vagrant/testSlim/
│--public/
│ │--index.php

testSlimの直下で、

$ composer require slim/slim:^4.0

を実行したところ、以下のようなエラーが返されます。

error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed Failed to enable crypto failed to open stream: operation failed https://repo.packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of date [Composer\Downloader\TransportException] The "https://packagist.org/p/slim/http%24eb75aa7385026f545bbf41c057272eba132b79c4c5aa1d1b62d93d20753255ec.json" fil e could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed Failed to enable crypto failed to open stream: operation failed

エラーメッセージについて調べたところ、以下のどれかが原因にあたりそうなのですが
・サーバー側の証明が不正(有効期限切れorもともと認証局によって正当性が担保されていない、等)
・クライアント側にインストールされているルート証明書が不正(有効期限など)
・サーバーの日時がずれている。
この内、今回発生したエラーがどれに該当するか特定できません。エラーの特定方法、解決方法をご教授いただけないでしょうか。よろしくお願いいたします。

動作環境

PHP 7.2.28
composer 1.10.1
CentOS 6.10
OpenSSL 1.01

試したこと、参考にしたサイト

参考にしたサイト
SSL通信時発生する証明書エラーとその仕組みを理解する
Composerのinstallコマンドでエラーが出る
【RHEL 備忘録】curlで「(60) Peer certificate cannot be authenticated with known CA certificates」が出たときの対処方法

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

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

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

guest

回答2

0

教えていただいたコマンドを実行し、サーバーの設定時間がエラー原因と判明し、無事インストールできました。ありがとうございました。

投稿2020/04/05 03:20

jackhase

総合スコア22

0

ベストアンサー

まず、openssl コマンドでサーバ証明書の内容を確認しましょう。

shell

1$ openssl s_client -connect packagist.org:443 2CONNECTED(00000003) 3depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3 4verify return:1 5depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3 6verify return:1 7depth=0 CN = packagist.org 8verify return:1 9--- 10Certificate chain 11 0 s:/CN=packagist.org 12 i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 13 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 14 i:/O=Digital Signature Trust Co./CN=DST Root CA X3 15--- 16Server certificate 17-----BEGIN CERTIFICATE----- 18MIIFmDCCBICgAwIBAgISAxzy5A0GoUWikSOPycRx9guTMA0GCSqGSIb3DQEBCwUA 19MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD 20ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0yMDAyMDkxNzQ2MzZaFw0y 21MDA1MDkxNzQ2MzZaMBgxFjAUBgNVBAMTDXBhY2thZ2lzdC5vcmcwggEiMA0GCSqG 22SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyFblhd3Q6L9kLB5j74FvdRGMrYV+jXcv8 23QLqCOGwRwz5V8deFcdQQeCv19m+MkV9Sc+EiIFhQhBo8dX6HGbRwozmk29bpEIH7 24r9TiCivVOXEqmqqqpvyRfo7pGRihlAIW7uOqQURHWaU4y79hYY9HG715MnCJ96WE 25Vl8sDYM8A/a7ayfQQxjtn45ztEpc50tk5PWJ29b/wyFocGcEhBgb9mM+V74b29Gu 26071H0Mh/RzVzsGTWiwX0fP0EnwY/qeUvbLYZCcA5v+VxFtuDyQFMjN3wowIudbB7 27xQIizHc6FBoKw/D1j+/tfM/lM4acjKLGiSY+XpHGgrzqGqJizLsfAgMBAAGjggKo 28MIICpDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF 29BwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFOWmyaUX9tdIYgsQDEzv6mTPZV27 30MB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyhMG8GCCsGAQUFBwEBBGMw 31YTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AuaW50LXgzLmxldHNlbmNyeXB0Lm9y 32ZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQuaW50LXgzLmxldHNlbmNyeXB0Lm9y 33Zy8wXgYDVR0RBFcwVYINcGFja2FnaXN0Lm9yZ4IdcmVwby1hcGFjLXNpbi0yLnBh 34Y2thZ2lzdC5vcmeCEnJlcG8ucGFja2FnaXN0Lm9yZ4IRd3d3LnBhY2thZ2lzdC5v 35cmcwTAYDVR0gBEUwQzAIBgZngQwBAgEwNwYLKwYBBAGC3xMBAQEwKDAmBggrBgEF 36BQcCARYaaHR0cDovL2Nwcy5sZXRzZW5jcnlwdC5vcmcwggEEBgorBgEEAdZ5AgQC 37BIH1BIHyAPAAdgAHt1wb5X1o//Gwxh0jFce65ld8V5S3au68YToaadOiHAAAAXAr 38Rl5jAAAEAwBHMEUCIG1bS2BvwPE1PiFrGdqMpQ6BDIhpI3iQQmz0N+CZLJPAAiEA 397M8kmb8G8vau8BjUQgmT6p+s4UebFPpsEJYnWiWfDmQAdgBvU3asMfAxGdiZAKRR 40Ff93FRwR2QLBACkGjbIImjfZEwAAAXArRl/jAAAEAwBHMEUCIC4d4ZnAa4Q/mDFZ 41ZpusdejNNlpao9MEFgfGwZMwfM12AiEAq/7qpEFuwL3SrYtL5doFSPtc+xulI89R 42kE5O0SQAfiQwDQYJKoZIhvcNAQELBQADggEBAIeKzLx2Sk0dsN6ocj0TXXjdir+t 43YKDThpQhucf8/WGsspGXDG7TPDT896pY6PdMMzh5Da/c3Ob/T6yStwbZ+mV0eG5Q 44wSN/EPTL3KQD/yFWIadtzYNLJno6iX+yuHjWBeUFXV/c3g0iMcFBsU686YmEX5YD 45AbzIU1HeFhF2SHJZBnGVe4tEEItkJxl2xR5ErLt4Vp+hxeXeJSeNjp2gcl+xyC4u 46EFpYXS2hwWrWmr1Kj3FtjzF9F7bcpdoHCfTN7+QDqjsHiQ4TAUOX9cZpJtsjdD49 47icgCPQqzJJKe/84LcEmC4IwTq1xo8PiZvBocS1GIWTWU+lR4ZQjJRtAgk9g= 48-----END CERTIFICATE----- 49subject=/CN=packagist.org 50issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 51--- 52No client certificate CA names sent 53Peer signing digest: SHA256 54Server Temp Key: ECDH, P-256, 256 bits 55--- 56SSL handshake has read 3120 bytes and written 415 bytes 57--- 58New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256 59Server public key is 2048 bit 60Secure Renegotiation IS supported 61Compression: NONE 62Expansion: NONE 63No ALPN negotiated 64SSL-Session: 65 Protocol : TLSv1.2 66 Cipher : ECDHE-RSA-AES128-GCM-SHA256 67 Session-ID: 0CE88C0490908817B87D30D4AC2376823D1BA1AE9F0361A296F61E088A60D5EC 68 Session-ID-ctx: 69 Master-Key: CA052851B5E6137C94966B8E8D67EC419E61580EDDF1CA96B3D3BDBE1AD2F687F562B318D9CE4FE91BA69E9601EECD11 70 Key-Arg : None 71 Krb5 Principal: None 72 PSK identity: None 73 PSK identity hint: None 74 Start Time: 1585532856 75 Timeout : 300 (sec) 76 Verify return code: 0 (ok) 77--- 78closed

この時点でエラーが出て原因がわかる可能性が高いですが、上記の通り、packagist.org はlets encryptyの正当な証明書を使用しておりサーバ側に問題はないようです。
そうすると、怪しいのはOSのトラストストアにlets encryptyが登録されていないのではないかということです。上記で証明書の発行者は 'DST Root CA X3' なので、これがサーバのトラストストアに入っているか確認してみましょう。

shell

1$ trust list | grep 'DST Root CA X3' 2 label: DST Root CA X3

これが入っていないよう(grepの結果が0行)であれば、トラストストアをアップデートしてみましょう。

shell

1$ sudo yum update ca-certificates

投稿2020/03/30 03:13

mit0223

総合スコア3401

jackhase

2020/04/05 03:20

教えていただいたコマンドを実行し、サーバーの設定時間がエラー原因と判明し、無事インストールできました。ありがとうございました。
mit0223

2020/04/06 09:24

解決してよかったです。お疲れ様でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問