[Salesforce] Let’s Encryptの証明書ではSFからのコールアウトを受けられない

Let’s Encryptで取得した証明書を適用させたサイトへコールアウトしたところエラーが発生し接続出来なかったので、調査してみた。

エラー内容

エラーは下記の内容。

System.CalloutException: sun.security.validator.ValidatorException:
PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target

エラー内容で調べてみると、自己証明書、ではSFからのアクセスが出来ない、という情報があり、その中で紹介されているエラーが上記内容と酷似していることがわかった。

Apexコールアウトのベストプラクティス:Part 2 – Appirio Japan

しかし、Let’s Encryptは自己証明書ではない…。

SFが許可するCA

引き続き調べてみると、どうやらsalesforceは接続出来る認証局 (CA) をホワイトリスト方式で設定しているよう。

Salesforce.com SSL certificates Salesforce supports

以下が許可されている認証局のリスト。

Outbound Messaging SSL CA Certificates – developer.force.com

このリストには、Let’s Encryptがない。
というわけで、SFがLet’s Encrypt認証局が作成した証明書を適用したサイトへの接続は許可していない、ということになり、冒頭のエラーが発生していた、ということになる。

ちなみに、Let’s Encryptの認証局をリストに加えてほしい、という要望は結構前から上がっているよう。

Support Let’s Encrypt CA Certificate – Ideas – Salesforce Success Community

対応する気はないのか、まだ手が回ってないだけなのか…。

参考

   このエントリーをはてなブックマークに追加