質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

0回答

3300閲覧

Unity HTTPS証明書エラー SSL CA certificate error

yonn

総合スコア120

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2021/10/12 11:53

編集2022/01/12 10:55

SSL CA certificate errorについて

HTTPSの証明書の確認がうまくいきません。
何か間違えているところがあれば教えて頂けませんでしょうか。

特にエラーの「Curl error 60」と言うのがネットで検索しても特に同じ症状の方が少ないようで何か基本手な間違いをしているのかもしれません。

ご教授頂けませんでしょうか。

SSL証明書のLet'Enqliptがの仕様で「有効期限は2021年9月30日」にAndroidの証明書の仕様が変化したようですがエディタでの挙動には特に変化は無いと言われいています。

9月末でLet's Encryptルート証明書が期限切れ、古い製品は要注意
リンク内容

//追加 20211012
突然証明書エラーが発生した原因と対処
リンク内容
PCでも同じことが起こっているようです。

◆1
公開鍵確認スクリプト作成→オブジェクトに貼り付けずにプロジェクトに保管

using UnityEngine.Networking; using System.Security.Cryptography.X509Certificates; class AcceptAllCertificatesSignedWithASpecificKeyPublicKey : CertificateHandler { private static string PUB_KEY =     "MIIFHTCCBAWgAwIBAgISBIc+L4++16gVL5w+M0+Avp2/MA0GCSqGSIb3DQEBCwUA" + "MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD" + //中略 "KJvIppn9PoP/AUwhQmUEC5g8sn8Xx4ZHQ+f3iut7bDltyzOSRSwnq1GXXLurXvyn" + "fQel91Qe4+/5LlqSMDi+QKQ="; protected override bool ValidateCertificate(byte[] certificateData) { X509Certificate2 certificate = new X509Certificate2(certificateData); string pk = certificate.GetPublicKeyString(); if (pk.Equals(PUB_KEY)) return true; // Bad dog return false; } }

◆2
チェック用スクリプト作成 ⇒ オブジェクトに貼付

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Networking; public class Check_Cert : MonoBehaviour { private void Start() { Check(); } public void Check() { string url_ = "https://○○○○○○";      // 自作のHP StartCoroutine("GetRequest", url_); } IEnumerator GetRequest(string uri) { UnityWebRequest request = UnityWebRequest.Get(uri); request.certificateHandler = new AcceptAllCertificatesSignedWithASpecificKeyPublicKey(); yield return request.SendWebRequest(); Debug.Log("<color=blue>SendWebRequest </color>" + request.isHttpError); if (request.isNetworkError) { Debug.Log("Something went wrong, and returned error: " + request.error);  //常にfalseが返ってくる } else { // Show results as text Debug.Log("<b>OK"); Debug.Log(request.downloadHandler.text); } } }

◆3
公開鍵はサーバーのLet'Enqliptの「 /etc/letsencrypt/live/ドメイン名/cert.pem

-----BEGIN CERTIFICATE----- MIIFHTCCBAWgAwIBAgISBIc+L4++16gVL5w+M0+Avp2/MA0GCSqGSIb3DQEBCwUA MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD //中略 KJvIppn9PoP/AUwhQmUEC5g8sn8Xx4ZHQ+f3iut7bDltyzOSRSwnq1GXXLurXvyn fQel91Qe4+/5LlqSMDi+QKQ= -----END CERTIFICATE-----

◆4
エディタのプレイボタンを押すと下記のエラー

i

Curl error 60: Cert verify failed: UNITYTLS_X509VERIFY_FLAG_NOT_TRUSTED

ii

Debug:SendWebRequest False

iii

Something went wrong, and returned error: SSL CA certificate error UnityEngine.Debug:Log (object) Check_Cert/<GetRequest>d__2:MoveNext () (at Assets/Check_Cert.cs:27) UnityEngine.SetupCoroutine:InvokeMoveNext (System.Collections.IEnumerator,intptr)

Windows10
Unity 2019.4.31f1
証明書 Let's Enqlipt
プラットフォーム Android Pc

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問