MikroTik hAP acで作るHotspot 2.0環境 (Android編)

■前説

hAP ac側の環境については前回参照。
MikroTik hAP acで作るHotspot 2.0環境 (iOS編) - pirosapの備忘録

Android 7.1.1/Android O Developer Previewで接続確認できたプロファイル

※現状、Android 7.0を搭載した端末では、一部(Samsung Galaxy系のもの)を除き接続確認ができていない
 Qua tab px → プロファイルはインストール可能であるが、Wi-Fiの詳細設定よりPasspointを有効にしても接続されない)
 honor8 → プロファイルインストール時にエラー

検証環境

FreeRADIUSに登録したユーザ名:   hoge@pirosap.tech
FreeRADIUSに登録したパスワード:  hs20!test17
FreeRADIUSサーバは、Let's Encryptで取得したサーバ証明書を使用している

サンプルプロファイル

プロファイルファイル名:pirosap-tech.config

<a href="pirosap-tech.config">pirosap-tech.config</a>

な感じでWEBサーバ上に置いて、ブラウザでリンクを踏んでインストールした

WEBサーバ側には下記のような設定が必要

(Apacheの場合)
AddType application/x-wifi-config .config
プロファイルの構成

実際のプロファイルは下記のようになっている。
これは、後述する(A)をBase64エンコードしたものである。
<実際のプロファイル>

Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PXtib3VuZGFyeX0KQ29udGVu
dC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0CgotLXtib3VuZGFyeX0KQ29udGVudC1UeXBlOiBh
cHBsaWNhdGlvbi94LXBhc3Nwb2ludC1wcm9maWxlCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6
IGJhc2U2NAoKUEUxbmJYUlVjbVZsSUhodGJHNXpQU0p6ZVc1amJXdzZaRzFrWkdZeExqSWlQZ29n
SUR4V1pYSkVWRVErTVM0eVBDOVdaWEpFVkVRKwpDaUFnUEU1dlpHVStDaUFnSUNBOFRtOWtaVTVo
YldVK1VHVnlVSEp2ZG1sa1pYSlRkV0p6WTNKcGNIUnBiMjQ4TDA1dlpHVk9ZVzFsClBnb2dJQ0Fn
UEZKVVVISnZjR1Z5ZEdsbGN6NEtJQ0FnSUNBZ1BGUjVjR1UrQ2lBZ0lDQWdJQ0FnUEVSRVJrNWhi
V1UrZFhKdU9uZG0KWVRwdGJ6cG9iM1J6Y0c5ME1tUnZkREF0Y0dWeWNISnZkbWxrWlhKemRXSnpZ
M0pwY0hScGIyNDZNUzR3UEM5RVJFWk9ZVzFsUGdvZwpJQ0FnSUNBOEwxUjVjR1UrQ2lBZ0lDQThM
MUpVVUhKdmNHVnlkR2xsY3o0S0lDQWdJRHhPYjJSbFBnb2dJQ0FnSUNBOFRtOWtaVTVoCmJXVStX
REU4TDA1dlpHVk9ZVzFsUGdvZ0lDQWdJQ0E4VG05a1pUNEtJQ0FnSUNBZ0lDQThUbTlrWlU1aGJX
VStRM0psWkdWdWRHbGgKYkR3dlRtOWtaVTVoYldVK0NpQWdJQ0FnSUNBZ1BFNXZaR1UrQ2lBZ0lD
QWdJQ0FnSUNBOFRtOWtaVTVoYldVK1EzSmxZWFJwYjI1RQpZWFJsUEM5T2IyUmxUbUZ0WlQ0S0lD
QWdJQ0FnSUNBZ0lEeFdZV3gxWlQ0eU1ERTNMVEF5TFRFMlZERTBPakl4T2pNMldqd3ZWbUZzCmRX
VStDaUFnSUNBZ0lDQWdQQzlPYjJSbFBnb2dJQ0FnSUNBZ0lEeE9iMlJsUGdvZ0lDQWdJQ0FnSUNB
Z1BFNXZaR1ZPWVcxbFBsVnoKWlhKdVlXMWxVR0Z6YzNkdmNtUThMMDV2WkdWT1lXMWxQZ29nSUNB
Z0lDQWdJQ0FnUEU1dlpHVStDaUFnSUNBZ0lDQWdJQ0FnSUR4TwpiMlJsVG1GdFpUNU5ZV05vYVc1
bFRXRnVZV2RsWkR3dlRtOWtaVTVoYldVK0NpQWdJQ0FnSUNBZ0lDQWdJRHhXWVd4MVpUNTBjblZs
ClBDOVdZV3gxWlQ0S0lDQWdJQ0FnSUNBZ0lEd3ZUbTlrWlQ0S0lDQWdJQ0FnSUNBZ0lEeE9iMlJs
UGdvZ0lDQWdJQ0FnSUNBZ0lDQTgKVG05a1pVNWhiV1UrUlVGUVRXVjBhRzlrUEM5T2IyUmxUbUZ0
WlQ0S0lDQWdJQ0FnSUNBZ0lDQWdQRTV2WkdVK0NpQWdJQ0FnSUNBZwpJQ0FnSUNBZ1BFNXZaR1ZP
WVcxbFBrVkJVRlI1Y0dVOEwwNXZaR1ZPWVcxbFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUR4V1lXeDFa
VDR5Ck1Ud3ZWbUZzZFdVK0NpQWdJQ0FnSUNBZ0lDQWdJRHd2VG05a1pUNEtJQ0FnSUNBZ0lDQWdJ
Q0FnUEU1dlpHVStDaUFnSUNBZ0lDQWcKSUNBZ0lDQWdQRTV2WkdWT1lXMWxQa2x1Ym1WeVRXVjBh
RzlrUEM5T2IyUmxUbUZ0WlQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Vm1GcwpkV1UrVFZNdFEwaEJV
QzFXTWp3dlZtRnNkV1UrQ2lBZ0lDQWdJQ0FnSUNBZ0lEd3ZUbTlrWlQ0S0lDQWdJQ0FnSUNBZ0lE
d3ZUbTlrClpUNEtJQ0FnSUNBZ0lDQWdJRHhPYjJSbFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4VG05a1pV
NWhiV1UrVlhObGNtNWhiV1U4TDA1dlpHVk8KWVcxbFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4Vm1Gc2RX
VSthRzluWlR3dlZtRnNkV1UrQ2lBZ0lDQWdJQ0FnSUNBOEwwNXZaR1UrQ2lBZwpJQ0FnSUNBZ0lD
QThUbTlrWlQ0S0lDQWdJQ0FnSUNBZ0lDQWdQRTV2WkdWT1lXMWxQbEJoYzNOM2IzSmtQQzlPYjJS
bFRtRnRaVDRLCklDQWdJQ0FnSUNBZ0lDQWdQRlpoYkhWbFBtRklUWGxOUTBZd1dsaE9NRTFVWXow
OEwxWmhiSFZsUGdvZ0lDQWdJQ0FnSUNBZ1BDOU8KYjJSbFBnb2dJQ0FnSUNBZ0lEd3ZUbTlrWlQ0
S0lDQWdJQ0FnSUNBOFRtOWtaVDRLSUNBZ0lDQWdJQ0FnSUR4T2IyUmxUbUZ0WlQ1UwpaV0ZzYlR3
dlRtOWtaVTVoYldVK0NpQWdJQ0FnSUNBZ0lDQThWbUZzZFdVK2NHbHliM05oY0M1MFpXTm9QQzlX
WVd4MVpUNEtJQ0FnCklDQWdJQ0E4TDA1dlpHVStDaUFnSUNBZ0lEd3ZUbTlrWlQ0S0lDQWdJQ0Fn
UEU1dlpHVStDaUFnSUNBZ0lDQWdQRTV2WkdWT1lXMWwKUGtodmJXVlRVRHd2VG05a1pVNWhiV1Ur
Q2lBZ0lDQWdJQ0FnUEU1dlpHVStDaUFnSUNBZ0lDQWdJQ0E4VG05a1pVNWhiV1UrUm5KcApaVzVr
YkhsT1lXMWxQQzlPYjJSbFRtRnRaVDRLSUNBZ0lDQWdJQ0FnSUR4V1lXeDFaVDVPUjBnZ2RHVnpk
R0psWkNCaWVTQndhWEp2CmMyRndMblJsWTJnOEwxWmhiSFZsUGdvZ0lDQWdJQ0FnSUR3dlRtOWta
VDRLSUNBZ0lDQWdJQ0E4VG05a1pUNEtJQ0FnSUNBZ0lDQWcKSUR4T2IyUmxUbUZ0WlQ1R1VVUk9Q
QzlPYjJSbFRtRnRaVDRLSUNBZ0lDQWdJQ0FnSUR4V1lXeDFaVDV1WjJndWNHbHliM05oY0M1MApa
V05vUEM5V1lXeDFaVDRLSUNBZ0lDQWdJQ0E4TDA1dlpHVStDaUFnSUNBZ0lEd3ZUbTlrWlQ0S0lD
QWdJRHd2VG05a1pUNEtJQ0E4CkwwNXZaR1UrQ2p3dlRXZHRkRlJ5WldVK0NnPT0KLS17Ym91bmRh
cnl9CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC14NTA5LWNhLWNlcnQKQ29udGVudC1UcmFu
c2Zlci1FbmNvZGluZzogYmFzZTY0CgpNSUlEU2pDQ0FqS2dBd0lCQWdJUVJLK3dnTmFqSjdxSk1E
bUdMdmhBYXpBTkJna3Foa2lHOXcwQkFRVUZBREEvCk1TUXdJZ1lEVlFRS0V4dEVhV2RwZEdGc0lG
TnBaMjVoZEhWeVpTQlVjblZ6ZENCRGJ5NHhGekFWQmdOVkJBTVQKRGtSVFZDQlNiMjkwSUVOQklG
Z3pNQjRYRFRBd01Ea3pNREl4TVRJeE9Wb1hEVEl4TURrek1ERTBNREV4TlZvdwpQekVrTUNJR0Ex
VUVDaE1iUkdsbmFYUmhiQ0JUYVdkdVlYUjFjbVVnVkhKMWMzUWdRMjh1TVJjd0ZRWURWUVFECkV3
NUVVMVFnVW05dmRDQkRRU0JZTXpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFv
Q2dnRUIKQU4rdjZaZFFDSU5YdE14aVpmYVFndXpIMHl4ck1NcGI3Tm5EZmNkQXdSZ1VpK0RvTTNa
Skt1TS9JVW1UckU0TwpyejVJeTJYdS9OTWhEMlhTS3RreWo0emw5M2V3RW51MWxjQ0pvNm02N1hN
dWVnd0dNb09pZm9vVU1NMFJvT0VxCk9MbDVDakg5VUwyQVpkKzNVV09EeU9LSVllcExZWUhzVW11
NW91SkxHaWlmU0tPZUROb0pqajRYTGg3ZElOOWIKeGlxS3F5NjljSzNGQ3hvbGtIUnl4WHRxcXpU
V01Jbi81V2dUZTFRTHlOYXU3RnFja2g0OVpMT014dCsveVVGdwo3Qlp5MVNic09GVTVROUQ4L1Jo
Y1FQR1g2OVdhbTQwZHV0b2x1Y2JZMzhFVkFqcXIybTd4UGk3MVhBaWNQTmFECmFlUVFteGtxdGls
WDQrVTltNS93QWwwQ0F3RUFBYU5DTUVBd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBT0JnTlYKSFE4
QkFmOEVCQU1DQVFZd0hRWURWUjBPQkJZRUZNU25zYVI3TEhINjIrRkxrSFgveEJWZ2hZa1FNQTBH
Q1NxRwpTSWIzRFFFQkJRVUFBNElCQVFDakdpeWJGd0JjcVI3dUtHWTNPcitEeHo5THd3bWdsU0Jk
NDlsWlJOSStEVDY5CmlrdWdkQi9PRUlLY2RCb2RmcGdhM2NzVFM3TWdST1NSNmN6OGZhWGJhdVgr
NXYzZ1R0MjNBRHExY0Vtdjh1WHIKQXZIUkFvc1p5NVE2WGtqRUdCNVlHVjhlQWxyd0RQR3hyYW5j
V1lhTGJ1bVI5WWJLK3JsbU02cFpXODdpcHhaegpSOHNyekptd04walA0MVpMOWM4UERISXloOGJ3
Ukx0VGNtMUQ5U1pJbWxKbnQxaXIvbWQyY1hqYkRhSldGQk01CkpER0ZvcWdDV2pCSDRkMVFCN3dD
Q1pBQTYyUmpZSnNXdklqSkV1YlNmWkdMK1QweWpXVzA2WHl4VjNicXhiWW8KT2I4VlpSekk5bmVX
YWdxTmR3dllrUXNFamdmYktiWUs3cDJDTlRVUQpNSUlFa2pDQ0EzcWdBd0lCQWdJUUNnRkJRZ0FB
QVZPRmMyb0xoZXluQ0RBTkJna3Foa2lHOXcwQkFRc0ZBREEvCk1TUXdJZ1lEVlFRS0V4dEVhV2Rw
ZEdGc0lGTnBaMjVoZEhWeVpTQlVjblZ6ZENCRGJ5NHhGekFWQmdOVkJBTVQKRGtSVFZDQlNiMjkw
SUVOQklGZ3pNQjRYRFRFMk1ETXhOekUyTkRBME5sb1hEVEl4TURNeE56RTJOREEwTmxvdwpTakVM
TUFrR0ExVUVCaE1DVlZNeEZqQVVCZ05WQkFvVERVeGxkQ2R6SUVWdVkzSjVjSFF4SXpBaEJnTlZC
QU1UCkdreGxkQ2R6SUVWdVkzSjVjSFFnUVhWMGFHOXlhWFI1SUZnek1JSUJJakFOQmdrcWhraUc5
dzBCQVFFRkFBT0MKQVE4QU1JSUJDZ0tDQVFFQW5OTU04RnJsTGtlM2NsMDNnN05vWXpEcTF6VW1H
U1hodmI0MThYQ1NMN2U0UzBFRgpxNm1lTlFoWTdMRXF4R2lIQzZQamRlVG04NmRpY2JwNWdXQWYx
NUdhbi9QUWVHZHh5R2tPbFpIUC91YVo2V0E4ClNNeCt5azEzRWlTZFJ4dGE2N25zSGpjQUhKeXNl
NmNGNnM1SzY3MUI1VGFZdWN2OWJUeVdhTjhqS2tLUURJWjAKWjhoL3BacTRVbUVVRXo5bDZZS0h5
OXY2RGxiMmhvbnpoVCtYaHErdzNCcnZhdzJWRm4zRUs2QmxzcGtFTm5XQQphNnhLOHh1UVNYZ3Zv
cFpQS2lBbEtRVEdkTURRTWMyUE1UaVZGcnFvTTdoRDhiRWZ3ekIvb25reEV6MHROdmpqCi9QSXph
cms1TWNXdnhJME5IV1FXTTZyNmhDbTIxQXZBMkgzRGt3SURBUUFCbzRJQmZUQ0NBWGt3RWdZRFZS
MFQKQVFIL0JBZ3dCZ0VCL3dJQkFEQU9CZ05WSFE4QkFmOEVCQU1DQVlZd2Z3WUlLd1lCQlFVSEFR
RUVjekJ4TURJRwpDQ3NHQVFVRkJ6QUJoaVpvZEhSd09pOHZhWE55Wnk1MGNuVnpkR2xrTG05amMz
QXVhV1JsYm5SeWRYTjBMbU52CmJUQTdCZ2dyQmdFRkJRY3dBb1l2YUhSMGNEb3ZMMkZ3Y0hNdWFX
UmxiblJ5ZFhOMExtTnZiUzl5YjI5MGN5OWsKYzNSeWIyOTBZMkY0TXk1d04yTXdId1lEVlIwakJC
Z3dGb0FVeEtleHBIc3NjZnJiNFV1UWRmL0VGV0NGaVJBdwpWQVlEVlIwZ0JFMHdTekFJQmdabmdR
d0JBZ0V3UHdZTEt3WUJCQUdDM3hNQkFRRXdNREF1QmdnckJnRUZCUWNDCkFSWWlhSFIwY0Rvdkwy
TndjeTV5YjI5MExYZ3hMbXhsZEhObGJtTnllWEIwTG05eVp6QThCZ05WSFI4RU5UQXoKTURHZ0w2
QXRoaXRvZEhSd09pOHZZM0pzTG1sa1pXNTBjblZ6ZEM1amIyMHZSRk5VVWs5UFZFTkJXRE5EVWt3
dQpZM0pzTUIwR0ExVWREZ1FXQkJTb1NtcGpCSDNkdXViUk9iZW1SV1h2ODZqc29UQU5CZ2txaGtp
Rzl3MEJBUXNGCkFBT0NBUUVBM1RQWEVmTmpXRGpkR0JYN0NWVytkbGE1Y0VpbGFVY25lOElrQ0pM
eFdoOUtFaWszSkhSUkhHSm8KdU0yVmNHZmw5NlM4VGloUnpadm9yb2VkNnRpNldxRUJtdHp3M1dv
ZGF0ZytWeU9lcGg0RVlwci8xd1hLdHg4Lwp3QXBJdkpTd3RtVmk0TUZVNWFNcXJTREU2ZWE3M01q
MnRjTXlvNWpNZDZqbWVXVUhLOHNvL2pvV1VvSE9VZ3d1Clg0UG8xUVl6KzNkc3prRHFNcDRma2x4
QndYUnNXMTBLWHpQTVRaK3NPUEF2ZXl4aW5kbWprVzhsR3krUXNSbEcKUGZaK0c2WjZoN21qZW0w
WStpV2xrWWNWNFBJV0wxaXdCaThzYUNiR1M1ak4ycDhNK1grUTdVTktFa1JPYjNONgpLT3FrcW01
N1RIMkgzZURKQWtTbmg2L0RORnUwUWc9PQotLXtib3VuZGFyeX0tLQoK

上記の元となるXML (A)は、次のような構成になっている。
XML (A)>

Content-Type: multipart/mixed; boundary={boundary}
Content-Transfer-Encoding: base64

--{boundary}
Content-Type: application/x-passpoint-profile
Content-Transfer-Encoding: base64

(下記B)
--{boundary}
Content-Type: application/x-x509-ca-cert
Content-Transfer-Encoding: base64

(下記C)
(下記D)
--{boundary}--

上記(A)に埋まっている(B)部分のHotspot2.0関連の情報は、次のXMLファイルをBase64エンコードしたものである。
<ネタ元のXML ― (B')>

<MgmtTree xmlns="syncml:dmddf1.2">
  <VerDTD>1.2</VerDTD>
  <Node>
    <NodeName>PerProviderSubscription</NodeName>
    <RTProperties>
      <Type>
        <DDFName>urn:wfa:mo:hotspot2dot0-perprovidersubscription:1.0</DDFName>
      </Type>
    </RTProperties>
    <Node>
      <NodeName>X1</NodeName>
      <Node>
        <NodeName>Credential</NodeName>
        <Node>
          <NodeName>CreationDate</NodeName>
          <Value>2017-02-16T14:21:36Z</Value>
        </Node>
        <Node>
          <NodeName>UsernamePassword</NodeName>
          <Node>
            <NodeName>MachineManaged</NodeName>
            <Value>true</Value>
          </Node>
          <Node>
            <NodeName>EAPMethod</NodeName>
            <Node>
              <NodeName>EAPType</NodeName>
              <Value>21</Value>
            </Node>
            <Node>
              <NodeName>InnerMethod</NodeName>
              <Value>MS-CHAP-V2</Value>
            </Node>
          </Node>
          <Node>
            <NodeName>Username</NodeName>
            <Value>ユーザ名平文レルムなし(hoge)</Value>
          </Node>
          <Node>
            <NodeName>Password</NodeName>
            <Value>パスワード hs20!test17 をBase64でエンコードした文字列(aHMyMCF0ZXN0MTc=)</Value>
          </Node>
        </Node>
        <Node>
          <NodeName>Realm</NodeName>
          <Value>pirosap.tech</Value>
        </Node>
      </Node>
      <Node>
        <NodeName>HomeSP</NodeName>
        <Node>
          <NodeName>FriendlyName</NodeName>
          <Value>NGH testbed by pirosap.tech</Value>
        </Node>
        <Node>
          <NodeName>FQDN</NodeName>
          <Value>ngh.pirosap.tech</Value>
        </Node>
      </Node>
    </Node>
  </Node>
</MgmtTree>

上記(B')をBase64エンコードしたものが(B)となる。
<(B)>

PE1nbXRUcmVlIHhtbG5zPSJzeW5jbWw6ZG1kZGYxLjIiPgogIDxWZXJEVEQ+MS4yPC9WZXJEVEQ+
CiAgPE5vZGU+CiAgICA8Tm9kZU5hbWU+UGVyUHJvdmlkZXJTdWJzY3JpcHRpb248L05vZGVOYW1l
PgogICAgPFJUUHJvcGVydGllcz4KICAgICAgPFR5cGU+CiAgICAgICAgPERERk5hbWU+dXJuOndm
YTptbzpob3RzcG90MmRvdDAtcGVycHJvdmlkZXJzdWJzY3JpcHRpb246MS4wPC9EREZOYW1lPgog
ICAgICA8L1R5cGU+CiAgICA8L1JUUHJvcGVydGllcz4KICAgIDxOb2RlPgogICAgICA8Tm9kZU5h
bWU+WDE8L05vZGVOYW1lPgogICAgICA8Tm9kZT4KICAgICAgICA8Tm9kZU5hbWU+Q3JlZGVudGlh
bDwvTm9kZU5hbWU+CiAgICAgICAgPE5vZGU+CiAgICAgICAgICA8Tm9kZU5hbWU+Q3JlYXRpb25E
YXRlPC9Ob2RlTmFtZT4KICAgICAgICAgIDxWYWx1ZT4yMDE3LTAyLTE2VDE0OjIxOjM2WjwvVmFs
dWU+CiAgICAgICAgPC9Ob2RlPgogICAgICAgIDxOb2RlPgogICAgICAgICAgPE5vZGVOYW1lPlVz
ZXJuYW1lUGFzc3dvcmQ8L05vZGVOYW1lPgogICAgICAgICAgPE5vZGU+CiAgICAgICAgICAgIDxO
b2RlTmFtZT5NYWNoaW5lTWFuYWdlZDwvTm9kZU5hbWU+CiAgICAgICAgICAgIDxWYWx1ZT50cnVl
PC9WYWx1ZT4KICAgICAgICAgIDwvTm9kZT4KICAgICAgICAgIDxOb2RlPgogICAgICAgICAgICA8
Tm9kZU5hbWU+RUFQTWV0aG9kPC9Ob2RlTmFtZT4KICAgICAgICAgICAgPE5vZGU+CiAgICAgICAg
ICAgICAgPE5vZGVOYW1lPkVBUFR5cGU8L05vZGVOYW1lPgogICAgICAgICAgICAgIDxWYWx1ZT4y
MTwvVmFsdWU+CiAgICAgICAgICAgIDwvTm9kZT4KICAgICAgICAgICAgPE5vZGU+CiAgICAgICAg
ICAgICAgPE5vZGVOYW1lPklubmVyTWV0aG9kPC9Ob2RlTmFtZT4KICAgICAgICAgICAgICA8VmFs
dWU+TVMtQ0hBUC1WMjwvVmFsdWU+CiAgICAgICAgICAgIDwvTm9kZT4KICAgICAgICAgIDwvTm9k
ZT4KICAgICAgICAgIDxOb2RlPgogICAgICAgICAgICA8Tm9kZU5hbWU+VXNlcm5hbWU8L05vZGVO
YW1lPgogICAgICAgICAgICA8VmFsdWU+aG9nZTwvVmFsdWU+CiAgICAgICAgICA8L05vZGU+CiAg
ICAgICAgICA8Tm9kZT4KICAgICAgICAgICAgPE5vZGVOYW1lPlBhc3N3b3JkPC9Ob2RlTmFtZT4K
ICAgICAgICAgICAgPFZhbHVlPmFITXlNQ0YwWlhOME1UYz08L1ZhbHVlPgogICAgICAgICAgPC9O
b2RlPgogICAgICAgIDwvTm9kZT4KICAgICAgICA8Tm9kZT4KICAgICAgICAgIDxOb2RlTmFtZT5S
ZWFsbTwvTm9kZU5hbWU+CiAgICAgICAgICA8VmFsdWU+cGlyb3NhcC50ZWNoPC9WYWx1ZT4KICAg
ICAgICA8L05vZGU+CiAgICAgIDwvTm9kZT4KICAgICAgPE5vZGU+CiAgICAgICAgPE5vZGVOYW1l
PkhvbWVTUDwvTm9kZU5hbWU+CiAgICAgICAgPE5vZGU+CiAgICAgICAgICA8Tm9kZU5hbWU+RnJp
ZW5kbHlOYW1lPC9Ob2RlTmFtZT4KICAgICAgICAgIDxWYWx1ZT5OR0ggdGVzdGJlZCBieSBwaXJv
c2FwLnRlY2g8L1ZhbHVlPgogICAgICAgIDwvTm9kZT4KICAgICAgICA8Tm9kZT4KICAgICAgICAg
IDxOb2RlTmFtZT5GUUROPC9Ob2RlTmFtZT4KICAgICAgICAgIDxWYWx1ZT5uZ2gucGlyb3NhcC50
ZWNoPC9WYWx1ZT4KICAgICAgICA8L05vZGU+CiAgICAgIDwvTm9kZT4KICAgIDwvTm9kZT4KICA8
L05vZGU+CjwvTWdtdFRyZWU+Cg==

<(C) FreeRADIUSサーバのサーバ証明書を署名しているLet's Encrypt の中間証明書をクロス署名しているIdenTrust のルート証明書

※―–BEGIN CERTIFICATE―– とか ―–END CERTIFICATE―– とかいらない
DST Root CA X3
※ISRG Root X1は広く信頼されていないため、多くのブラウザで信頼されているIdenTrustのDST Root CA X3でクロス署名されている
Let's Encryptによる説明:https://letsencrypt.org/certificates/

<(D) FreeRADIUSサーバのサーバ証明書を署名しているLets's Encryptの中間証明書>

※―–BEGIN CERTIFICATE―– とか ―–END CERTIFICATE―– とかいらない
Let's Encrypt Authority X3 (IdenTrust cross-signed)

Android O developer preview (Nexus 5X)での動作検証

ブラウザで開いてインストール


自動的に接続される