Arch Linux で証明書ベースの透過プロキシをどう扱えばいいですか?

Arch Linux で証明書ベースの透過プロキシをどう扱えばいいですか?

職場に Arch Linux VM をセットアップしました。会社では自己署名証明書を使用した透過型 (カットスルー) プロキシを使用しており、認証が必要です。このプロキシを使用してパッケージをインストールしようとすると、pacman次のエラーが発生します (例: インストールしようとしていますlynx)。

エラー: mirrors.kernel.org からファイル 'lynx-2.8.7-6-x86_64.pkg.tar.xz' を取得できませんでした: SSL 証明書の問題: 証明書チェーン内の自己署名証明書

で定義したすべてのミラーに対してこのエラーがスローされます/etc/pacman.d/mirrorlist。 などの他の HTTP/S クライアントを使用しようとすると同様の問題が発生しますcurlが、FTP では問題は発生しません (主に、私の会社ではポート 80 と 443 のみを監視しているためです)。

すでに試したことは...

  • 自社の自己署名CA証明書を に配置し/usr/share/ca-certificates/etc/ca-certificates
  • 設定してhttp_proxyhttps_proxy自分の資格情報を使用して会社のプロキシサーバーを指定する
  • プロキシ サーバーを管理している人と話をしましたが、その人は Linux について何も知らないので、どこから始めればいいのか全くわかりません。

今のところ、何かをインストールしたりインターネットにアクセスしたりする必要があるときは、これを回避するために自宅のサーバーへの SSH トンネルを開いています。

以下は出力ですopenssl s_client -CApath /etc/ca-certificates -showcerts -connect mirrors.kernel.org:443

接続済み(00000003)
深さ=0 C = 米国、ST = カリフォルニア、L = サンノゼ、O = Linux カーネル組織、CN = *.kernel.org
検証エラー:num=20:ローカル発行者証明書を取得できません
戻り値の確認:1
深さ=0 C = 米国、ST = カリフォルニア、L = サンノゼ、O = Linux カーネル組織、CN = *.kernel.org
検証エラー:num=27:証明書が信頼されていません
戻り値の確認:1
深さ=0 C = 米国、ST = カリフォルニア、L = サンノゼ、O = Linux カーネル組織、CN = *.kernel.org
検証エラー:num=21:最初の証明書を検証できません
戻り値の確認:1
---
証明書チェーン
 0 s:/C=US/ST=カリフォルニア/L=サンノゼ/O=Linuxカーネル組織/CN=*.kernel.org
   i:/C=US/ST=MyCompanyState/L=MyCompanyCity/O=MyCompanyName/OU=IT/CN=MyCompanyProxyServer/[メールアドレス]
-----証明書の開始-----
... 何とか何とか何とか
-----証明書終了-----
---
サーバー証明書
subject=/C=US/ST=カリフォルニア/L=サンノゼ/O=Linuxカーネル組織/CN=*.kernel.org
発行者=/C=US/ST=MyCompanyState/L=MyCompanyCity/O=MyCompanyName/OU=IT/CN=MyCompanyProxyServer/[メールアドレス]
---
クライアント証明書の CA 名が送信されませんでした
---

注記代わりに FTP ミラーを使用することもできますが、他の HTTP/S アプリケーション (例 ) の問題は実際には解決されませんcurl

答え1

提供された情報によると、/etc/ca-certificatesファイルにサーバー証明書を追加したようです。代わりに CA 証明書を追加する必要があります。

openssl s_client -showcerts実行したコマンドには、最初の証明書の後に 1 つ以上の他の証明書が含まれている必要があります。これらが重要な証明書です。最初
の証明書の後に複数の証明書がある場合は、両方のca-certificates証明書をファイルに追加する必要があります。これはすべて、プロキシでの証明機関の設定方法によって異なります。ただし、両方とも必要ではなく、とにかく両方を追加しても問題はありません。

しかし、openssl s_client -showcerts最初の証明書以外の証明書が表示されない場合は、困ったことになります。プロキシが署名証明書を送信していないことを意味します。ネットワークチームに連絡して、証明書を要求してみてください。セキュリティの観点から、彼らがあなたに証明書を渡さない理由はまったくありません(それは保護されなければならないもの)。


たとえば、次のようになります (はい、SSL プロキシの背後にいないため、実際の証明書を取得しますが、概念はそのままです)。

# openssl s_client -showcerts -connect mirrors.kernel.org:443
接続済み(00000003)
深さ = 2 C = US、O = "thawte, Inc."、OU = 認証サービス部門、OU = "(c) 2006 thawte, Inc. - 許可された使用のみ"、CN = thawte プライマリ ルート CA
検証エラー:num=20:ローカル発行者証明書を取得できません
戻り値の確認:0
---
証明書チェーン
 0 s:/C=US/ST=カリフォルニア/L=サンノゼ/O=Linuxカーネル組織/CN=*.kernel.org
   i:/C=US/O=Thawte, Inc./CN=Thawte SSL CA
-----証明書の開始-----
MIID2zCCAsOgAwIBAgIQZ7xPhWo7v0ZlPnI5mJWMazANBgkqhkiG9w0BAQUFADA8
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMVGhhd3RlLCBJbmMuMRYwFAYDVQQDEw1U
aGF3dGUgU1NMIENBMB4XDTEyMDEwMzAwMDAwMFoXDTE0MDQwMzIzNTk1OVowdDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExETAPBgNVBAcUCFNhbiBK
b3NlMSYwJAYDVQQKFB1UaGUgTGludXggS2VybmVsIE9yZ2FuaXphdGlvbjEVMBMG
A1UEAxQMKi5rZXJuZWwub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEApSbajGUzM+C1Oz6CzyPmek9HH03ToicZeHxOlBfS7yyvIyybxTCBrmkItyc+
sf6b5g2Zf8IPwloaj+ACQaLfm0OOaFrvHERIN1t0pitvmeSDI6BXVYq0eSLEPpSG
YC/3AMdKE21NO1jmL7mtsCB8CW4NAAvy97HkvsPsTPNOp6d/LtcIMYRS347RFgRj
O/J1PU05EEjcpXdy6eCyJLwi2AFLgfBzjS+0UK4tq01HFalULfO/akjC59WG+qrc
P/Yi/1TM8bE2mun1mcuCP7bmyZFDfrGnO2TYcZ/s7z4bTUmEixR6kTdj1foqi7Xk
svko9dXCiUZj4c692ZKZXE+gJwIDAQABo4GgMIGdMAwGA1UdEwEB/wQCMAAwOgYD
VR0fBDMwMTAvoC2gK4YpaHR0cDovL3N2ci1vdi1jcmwudGhhd3RlLmNvbS9UaGF3
dGVPVi5jcmwwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMDIGCCsGAQUF
BwEBBCYwJDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AudGhhd3RlLmNvbTANBgkq
hkiG9w0BAQUFAAOCAQEAd7mKHpW1mCB1fGuvR44iX83PmSy3BVEpvOlnH1zNSU/Y
2zMmKDbXqAJTY6t20Yq/GpjW3BA2G4xEA6i64WAGZcSmXfc/NDOSh0i5lTrCofCG
3tuts9HTmHJLfeAz9cZiT4rc4ROMV4K17/Uw81UIid952M/4b6OvhaCu5OSnvDUI
3Z6OUy+AuJHbwEyB5bGOJ/mqVKUztgUK17bJiwDhwZ4Q8PT6YKUj5NgPcG6cUKxY
HK6yxvoqH/s1DQJB3JHDSFVgY47ECmoHyQ5MvJN+naNrZJUIH0RTmmHNbQH772W7
m8I66jiDhXTd6+4v8DipvHJOSEv7ebG0Jf6gv7lc6w==
-----証明書終了-----
 1 s:/C=US/O=Thawte, Inc./CN=Thawte SSL CA
   i:/C=US/O=thawte, Inc./OU=Certification Services Division/OU=(c) 2006 thawte, Inc. - 許可された使用のみ/CN=thawte プライマリ ルート CA
-----証明書の開始-----
MIIEbDCCA1SgAwIBAgIQTV8sNAiyTCDNbVB+JE3J7DANBgkqhkiG9w0BAQUFADCB
qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV 翻訳:
BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTAwMjA4MDAwMDAwWhcNMjAw
MjA3MjM1OTU5WjA8MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMVGhhd3RlLCBJbmMu
翻訳:
MIIBCgKCAQEAmeSFW3ZJfS8F2MWsyMip09yY5tc0pi8M8iIm2KPJFEyPBaRF6BQM
翻訳:
7QytT8G1sCH9PlBTssSQ0NQwZ2ya8Q50xMLciuiX/8mSrgGKVgqYMrAAI+yQGmDD
7bs6yw9jnw1EyVLhJZa/7VCViX9WFLG3YR0cB4w6LPf/gN45RdWvGtF42MdxaqMZ
翻訳:
XMRISstSoKn4sZ2Oe3mwIC88lqgRYke7EQIDAQABo4H7MIH4MDIGCCsGAQUFBwEB
BCYwJDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AudGhhd3RlLmNvbTASBgNVHRMB
Af8ECDAGAQH/AgEAMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwudGhhd3Rl
翻訳:
GzEZMBcGA1UEAxMQVmVyaVNpZ25NUEtJLTItOTAdBgNVHQ4EFgQUp6KDuzRFQD38
1TBPErk+oQGf9tswHwYDVR0jBBgwFoAUe1tFz6/Oy3r9MZIaarbzRutXSFAwDQYJ
コジフ・ナックル
S+Uv+yV9Lwdh+m+DdExMU3IgpHrPUVFWgYiwbR82LMgrsYiZwf5Eq0hRfNjyRGQq
2HGn+xov+RmNNLIjv8RMVR2OROiqXZrdn/0Dx7okQ40tR0Tb9tiYyLL52u/tKVxp
EvrRI5YPv5wN8nlFUzeaVi/oVxBw9u6JDEmJmsEj9cIqzEHPIqtlbreUgm0vQF9Y
3uuVK6ZyaFIZkSqudZ1OkubK3lTqGKslPOZkpnkfJn1h7X3S5XFV2JMXfBQ4MDzf
huNMrUnjl1nOG5srztxl1Asoa06ERlFE9zMILViXIa4=
-----証明書終了-----
 2 s:/C=US/O=thawte, Inc./OU=Certification Services Division/OU=(c) 2006 thawte, Inc. - 許可された使用のみ/CN=thawte プライマリ ルート CA
   i:/C=ZA/ST=西ケープ州/L=ケープタウン/O=Thawteコンサルティングcc/OU=認証サービス部門/CN=ThawteプレミアムサーバーCA/[メールアドレス]
-----証明書の開始-----
MIIERTCCA66gAwIBAgIQM2VQCHmtc+IwueAdDX+skTANBgkqhkiG9w0BAQUFADCB
zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ
Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE
CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh
d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
cnZlckB0aGF3dGUuY29tMB4XDTA2MTExNzAwMDAwMFoXDTIwMTIzMDIzNTk1OVow
ガクxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwx0aGF3dGUsIEluYy4xKDAmBgNVBAsT
H0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xODA2BgNVBAsTLyhjKSAy
MDA2IHRoYXd0ZSwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYD
VQQDExZ0aGF3dGUgUHJpbWFyeSBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEArKDw+4BZ1JzHpM+doVlzCRBFDA0sbmjxbFtIaElZN/wLMxnC
d3/MEC2VNBzm600JpxzSuMmXNgK3idQkXwbAzESUlI0CYm/rWt0RjSiaXISQEHoN
vXRmL2o4oOLVVETrHQefB7pv7un9Tgsp9T6EoAHxnKv4HH6JpOih2HFlDaNRe+68
0iJgDblbnd+6/FFbC6+Ysuku6QToYofeK8jXTsFMZB7dz4dYukpPymgHHRydSsbV
L5HMfHFyHMXAZ+sy/cmSXJTahcCbv1N9Kwn0jJ2RH5dqUsveCTakd9h7h1BE1T5u
KWn7OUkmHgmlgHtALevoJ4XJ/mH9fuZ8lx3VnQIDAQABo4HCMIG/MA8GA1UdEwEB
/wQFMAMBAf8wOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUHAgEWGmh0dHBz
翻訳:
e1tFz6/Oy3r9MZIaarbzRutXSFAwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cDovL2Ny
bC50aGF3dGUuY29tL1RoYXd0ZVByZW1pdW1TZXJ2ZXJDQS5jcmwwDQYJKoZIhvcN
AQEFBQADgYEAhKhMyT4qvJrizI8LsiV3xGGJiWNa1KMVQNT7Xj+0Q+pjFytrmXSe
Cajd1FYVLnp5MV9jllMbNNkV6k9tcMq+9oKp7dqFd8x2HGqBCiHYQZl/Xi6Cweiq
95OBBaqStB+3msAHF/XLxrRMDtdW3HEgdDjWdMbWj2uvi42gbCkLYeA=
-----証明書終了-----
---
サーバー証明書
subject=/C=US/ST=カリフォルニア/L=サンノゼ/O=Linuxカーネル組織/CN=*.kernel.org
発行者=/C=US/O=Thawte, Inc./CN=Thawte SSL CA
---
クライアント証明書の CA 名が送信されませんでした
---
SSLハンドシェイクは3566バイトを読み取り、636バイトを書き込みました
---
新規、TLSv1/SSLv3、暗号はRC4-SHA
サーバーの公開鍵は2048ビットです
セキュアな再ネゴシエーションがサポートされています
圧縮: なし
拡張: なし
SSLセッション:
    プロトコル: TLSv1
    暗号: RC4-SHA
    セッション ID: EAB5C93513AA8829036C7BB9E3F74D99076C8A339EB220832F76DF73D52D0B22
    セッションID-ctx:
    マスターキー: 0A599E2D1CCAA8249E50871FDF03A2137BA034BCB20FA691D1413822BE08E15303CB0F59CDEC0376D670E08632EF0D46
    キー引数: なし
    PSK ID: なし
    PSK ID ヒント: なし
    SRP ユーザー名: なし
    TLS セッション チケット:
    0000 - ac 28 d2 81 da 5e b9 7f-43 52 ab e8 2c b0 ac 1d .(...^..CR..,...
    0010 - c0 27 92 cb 5e 0e 1e 36-e4 77 34 bf 34 f8 cb 2f .'..^..6.w4.4../
    0020 - 04 af 1a 9b ea b3 9e 6f-32 44 4b ce d1 b4 2b 42 .......o2DK...+B
    0030 - 55 a8 e3 ec 9a 6a 76 5d-c0 84 e0 aa 20 29 ae ac U....jv].... )..
    0040 - 7d 45 2b 3b 56 3c 2e 4b-d3 69 60 c8 fb 67 36 07 }E+;V...;.]p.......
    00a0 - de 09 7d bf 3f b9 2c 9c-af 5d b1 af b2 9b bc 7a ..}.?.,..].....z
    00b0 - 5e b3 92 26 02 3a 0e 47-c9 4b 10 6c 5b f4 2f c3 ^..&.:.GKl[./.

    開始時間: 1380663897
    タイムアウト: 300 (秒)
    戻りコードを確認してください: 20 (ローカル発行者証明書を取得できません)
---

証明書 2 (最後のもの) を追加します。証明書 1 はチェーン証明書であり、証明書 2 によってチェーン証明書として承認されているため、証明書 1 は必要ありません。ただし、証明書 1 も追加できますし、問題はありません。

答え2

どなたかの参考になれば幸いですが、私も同様の問題を抱えていましたが、少し違った方法で解決しました。私の会社のプロキシは、中間自己署名証明書を使用していました。これは、仮想マシンのコマンドライン プログラムだけでなく、ブラウザーでも明らかでした。ブラウザー (Chromiumim) で外部サイトに移動すると、サイトが中間自己署名証明書を使用していたため、信頼されていないメッセージが表示されました。URL バーのロック アイコン領域をクリックすると、中間証明書をダウンロードできました。その後、次の手順に従いました。修正は、コマンドライン プログラムやブラウザーなどにグローバルに適用されます。

https://wiki.archlinux.org/title/User:Grawity/信頼されたCA証明書の追加

関連情報