DLG_FLAGS_INVALID_CAのエラーコードが表示される原因と解決、回避方法について

※この記事にはプロモーションが含まれています。

IE、Edgeで「このサイトは安全ではありません」とともに表示されるエラーコードを回避して表示させない方法はあるのでしょうか。解決方法やオレオレ証明書について解説しています。

※記事の最後でこの内容をPDFとしてダウンロードできるようにしています。

DLG_FLAGS_INVALID_CAって何のエラーなんだろう?

IEやEdgeでサイトを見ていると、DLG_FLAGS_INVALID_CAというエラーに遭遇することがあります。

今回はその場合の対処方法です。

DLG_FLAGS_INVALID_CAが表示される原因と対策について

DLG_FLAGS_INVALID_CAが表示される原因は

信頼された認証局から発行された証明書を使っていない

サイトだからです。

・・・

・・・

なんのこっちゃ?という話かもしれませんので、もう少しわかりやすく言うと、

オレオレ証明書を使っているサイト

だからです。

絶対、とは言い切れない(後ほど説明します)ですが、大半の場合がこの理由によるものだと思います。

オレオレ証明書って何?オレオレ詐欺ですか?

オレオレ証明書と言われてもピンと来ない方に説明をすると、オレオレ証明書とはグローバルサインとか、サイバートラスト、デジサートなどの信頼された認証局から発行された証明書ではなく、自分で作った証明書のことです。

意外かもしれませんが、証明書って別に認証局に依頼しなくても自分でも作れちゃうんです。

それもOpenSSLなどの無料のツールでタダで作れます。

そして、その無料で作ったオレオレ証明書をSSL/TLS通信に使うこともできるのです。

でも、オレオレ証明書を使っていると、

DLG_FLAGS_INVALID_CA

というエラーが出てしまうのです。

その理由をこれからお話しします。

なぜ、DLG_FLAGS_INVALID_CAと表示されるのか?

オレオレ証明書を使っているとDLG_FLAGS_INVALID_CAというエラーが出てくることはわかりましたが、どうしてこのようなエラーが出るのでしょうか。

サーバ用の証明書はWebサイトの通信を暗号化するためのもので、サーバに入れることになります。

そして、ブラウザなどのクライアントがアクセスをしてきたときに、その証明書を使ってSSL/TLS暗号化通信をするわけです。(かなり乱暴な説明の仕方ですが、、、)

この暗号化通信をする際にブラウザはサーバから送られてきた証明書を検証する必要があるのですが、その検証はブラウザに予めインストールされているルート証明書を使って行います。

信頼された認証局のルート証明書は、予めブラウザにインストールされているので正しく検証ができるのですが、オレオレ証明書は信頼された認証局から発行されたものではないので、ブラウザに発行元となる認証局のルート証明書が搭載されていないのです。

だから、信頼された認証局から発行された証明書として認証してもらうことができないのです。

これが、DLG_FLAGS_INVALID_CAというエラーが表示される原因です。

DLG_FLAGS_INVALID_CAと表示された場合の対策

DLG_FLAGS_INVALID_CAと表示された場合の対策ですが、アクセスした側のブラウザでは残念ながらどうすることもできません。

厳密には

以下の「Web ページに移動 (非推奨)」というところ

をクリックすればアクセスはできてしまうのですが、オレオレ証明書が適用されているようなサイトへはアクセスしないほうが無難です。

よって、このエラーに遭遇した場合は、正規のサイトであればサイト管理者へ問い合わせをする、そうではないあやしいサイトであればアクセスするのをやめる、というのが対応策になります。

ちなみに無視してアクセスした場合は、以下のようにアドレスバーが真っ赤になります。

一応、これでもhttpsで接続できているので、暗号化通信は行えていることになりますが、悪意を持った目的のサーバとのやり取りをしている可能性があるので、そんなところと暗号化通信しても意味ないですね。

DLG_FLAGS_INVALID_CAの原因はオレオレ証明書だけ?

ここまでDLG_FLAGS_INVALID_CAの原因は、オレオレ証明書が適用されたサイトだからです、という話だけしてきましたが、実は違う理由でも出るのです。

それは、サーバに中間証明書がインストールされていない場合です。

最近の認証局から発行されている証明書の直接の発行元は、ルート認証局ではなく中間CAを介して発行されていることが通常です。

中間証明書はサーバ証明書とともにサーバへインストールするものです。

クライアントがサイトへ接続をしようとすると、サーバはサーバ証明書と中間証明書をクライアントに送ります。

ここで中間を送れていないと、ルート証明書とサーバ証明書のチェーンが確立できずに、エラーとなることがあります。

これのエラーも、そうです

DLG_FLAGS_INVALID_CA

なんです。

中間証明書がなく、ルート証明書までのチェーンが確立できない場合もあるので注意が必要です。

サーバに中間証明書がなくてもエラーにならない?

でも、最近のブラウザであればサーバに中間証明書がなくてもエラーが出ることはまずありません。

ん?

話が矛盾してないかい?

と思われるかもしれませんが、最近のブラウザはサーバから中間が送られてこない場合は、自動的にインターネット上からダウンロードしてくるので、エラーになることはほとんどありません。

ただし、プロキシ環境、Firewallなど、インターネット接続に制限がある場合や、インターネットに接続できない閉ざされた環境ではダウンロードできないためこのエラーが出ることがあります。

信頼された認証局ってどこ?

以上が、DLG_FLAGS_INVALID_CAと表示される理由と対策についてのお話ですが、ついでに信頼された認証局ってなに?というお話を少々。

信頼された認証局というのは適当に決まっているのではなく、WebTrustというプログラムで認定を受けた認証局が信頼された認証局となります。

WebTrust(ウェブトラスト)とは、AICPA(米国公認会計士協会)とカナダ勅許会計士協会によって共同開発された国際的な電子商取引認証局監査プログラムのことで、WebTrust規準を満たしたルート認証局は、ウェブブラウザに「信頼されたルート証明機関」として登録されるようになっています。

なので、誰かが適当にルート証明書をブラウザにインストールする、ということはできないものです。

とはいえ、あとからルート証明書をインストールすること自体はできてしまうので、不用意にルート証明書をインポートすることはしてはならないものです。

信頼されたルート証明機関の証明書は以下から格安で購入できます。


まとめ

今回の内容をまとめると

  • DLG_FLAGS_INVALID_CAの原因はオレオレ証明書
  • 対策はアクセスをしない、もしくはサイト管理者へ問い合わせ
  • エラーを無視してサイトへアクセスすることはできる
  • 中間証明書の設定漏れの可能性もゼロではない
  • 最近のブラウザはサーバに中間証明書がなくてもインターネットからダウンロードする

という感じです。

なにか理由があってであれば仕方ないですが、そうではない場合はこのメッセージが表示されたらアクセスしないことをおすすめします。

以上、「DLG_FLAGS_INVALID_CAが表示される原因と対策について」についてでした。

この記事の内容をダウンロードする場合は以下からどうぞ。

コメント