回答編集履歴

2

選択肢 1. の方法を追記

2023/07/24 08:33

投稿

ikedas
ikedas

スコア4443

test CHANGED
@@ -19,3 +19,21 @@
19
19
  2. curl コマンドに何らかのオプション (証明書を無視する等) を追加する。
20
20
  3. EOLになっていないバージョンのAlpine Linuxを使う。
21
21
 
22
+ ## 追記
23
+
24
+ ご質問の意図は、上記1.の方法を知りたいということだったそうです。以下説明します。
25
+
26
+ 必要なルート証明書 (及び中間認証局証明書) を特定して入手する方法については、pecl.php.netのサーバ証明書を調べることで調べることができます。しかし、この方法を説明しだすととても長くなってしまうので、調べる方法がわからないときは別の質問で聞いてください。
27
+
28
+ さて、必要な証明書を入手できたら、Dockerfileに次のものを記述する必要があるでしょう。
29
+
30
+ ```
31
+ RUN apk update && apk add ca-certificates
32
+ COPY 証明書.crt /usr/local/share/ca-certificates/
33
+ RUN update-ca-certificates
34
+ ```
35
+ なお、ca-certificatesがインストールされておらず、apkコマンドが失敗するようなら、ca-certificatesバンドルをなんらかの方法で入手してインストールしてください。
36
+ また、証明書ファイルの拡張子は`.crt`にする必要があります。
37
+
38
+ 処理の内容について詳しくは、update-ca-certificatesコマンドのマニュアルページを参照してください。
39
+

1

typo

2023/07/24 05:20

投稿

ikedas
ikedas

スコア4443

test CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  ですので、Alpine Linuxにインストールされた信頼しているルート証明書が古いのだと考えられます。つまり、pecl.php.netのサーバ証明書の検証に使えるルート証明書がインストールされていません。
13
13
 
14
- Alpine Linuxであれば、信頼しているルート証明書はca-certificatesというパッケージで提供されているはずです。しかし、Alpine 3.7は2019年03月06日を以てend of lifeを迎えていますので、アップデーされたca-certificatesパッケージは入手できません。
14
+ Alpine Linuxであれば、信頼しているルート証明書はca-certificatesというパッケージで提供されているはずです。しかし、Alpine 3.7は2019年03月06日を以てend of lifeを迎えていますので、アップデーされたca-certificatesパッケージは入手できません。
15
15
 
16
16
  対応としては、次のような選択肢があると思います。
17
17