【Salesforce】ドメインに設定する証明書の設定に苦戦した
SalesforceのサイトのURLに、お客さんから指定されたURLを設定することになりました。
指定されたドメインにカスタムURLを設定し、あとはSSLを設定するだけです。
SSLのための証明書は、証明書と鍵の管理で作成することが出来ます。
お客さんからは既に証明書用のcrtファイルを受け取っているため、アップロードするだけで終わりです。
しかし、ここで問題が発生しました。
証明書は貰っていたものの、Salesforce側で作成する証明書に設定する内容が分からないのです。
ドメイン名は分かるのですが、会社名や都道府県に設定した情報が分からないのですね。
これに関してはOpenSSLで中身を確認することが出来るということで、コマンドを打ち込みました。
証明書ファイルの確認 openssl x509 -in subnetwork.jp.crt -text
subnetwork.jp.crtがファイル名です。
無事に内容を確認することが出来ました。
しかし確認した内容の中にはどうしても見つけられない項目がありました。
部署であるOU(Organization Unit)です。
証明書の内容はSalesforceで入力した内容と一致していなければアップロードできません。
Salesforceの部署は必須項目ですが、証明書の部署は必ずしも必要というわけではないようです。
このあたりで一度、天を仰ぎました。
お客さんに証明書を取り直してもらうのは最終手段と考え、何とか方法を考えます。
考えてみると、証明書のアップロードはkeystoreファイルからも可能なんですよね。
crtファイルからkeystoreファイルへ変換できるだろうと考え、とりあえず調べました。
https://hacknote.jp/archives/490/
OpenSSLでpkcs12ファイルというのに変換した後、keytoolを使ってkeystoreファイルを作成するそうです。
keytoolって何ぞやと思ったのですが、JREに入っているのですね。
使い方を調べて、実行します。
crtファイルからpkcs12ファイルを作成する openssl pkcs12 -export -in subnetwork.jp.crt -inkey subnetwork.jp.key -out domain.p12 -certfile subnetwork.jp.crt pkcs12ファイルからkeystoreファイルを作成する keytool -importkeystore -srckeystore domain.p12 -srcstoretype PKCS12 -destkeystore domain.keystore -deststoretype JKS
keystoreファイルが作成されました。
Salesforceの「キーストアからインポート」でインポートしてみました。
しかし、エラーとなりました。
エラー: キーストアにあるエントリの別名をインポートできません: 1
別名が不正とのことでした。
https://help.salesforce.com/articleView?id=000206348&language=ja&type=1
「1」ではエラーになりますよね。
親切にも別名の変更方法が記述されているため、それに沿って実行します。
keytool -keystore domain.keystore -changealias -alias 1 -destalias subnetwork
別名が変更されたkeystoreファイルを、再度インポートです。
今度は無事にインポートできました。
キーストアからのインポートであれば、部署が空白でも大丈夫なようです。
作成された証明書をドメインに設定しました。
カスタムURLを叩いてみると、無事に証明書エラーが発生しました。
調べてみると、中間証明書も必要なんだそうです。
http://spcsalesfrorce.blogspot.com/2018/02/salesforce-ssl.html
エディタでcrtファイルを開き、SSLサーバ証明書と中間証明書を連結して別の名前で保存しました。
またキーストアを作成しなければいけないのかと思いましたが、既に証明書は作成されているため、「署名済み証明書の更新」でcrtファイルをアップロードするだけでした。
しかし、まだ証明書エラーが表示されていました。
何ということだと別のブラウザで表示してみると、ちゃんと表示されていました。
証明書エラーが表示されていたブラウザのキャッシュを削除し、再度URLを叩いてみると、正常に表示されました。
正常に表示されたため、あとはお客さんにドヤ顔で、さも簡単に設定したかのように振る舞うだけです。
証明書の再取得のようなことにならなくて良かったです。
セキュリティ関連は難しいですね。
One Response to "【Salesforce】ドメインに設定する証明書の設定に苦戦した"