<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">I use nearly the same. Here’s the complete connection definition for iOS as generated by my pistrong strongSwan management tool:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    ios-pubkey-ikev2 {<o:p></o:p></p>
<p class="MsoNormal">        version = 2<o:p></o:p></p>
<p class="MsoNormal">        proposals = aes256-sha1-modp1024,aes192-sha256-modp3072,aes128-sha1-modp1536,aes128-sha256-modp1536,aes128-sha256-modp2048,default<o:p></o:p></p>
<p class="MsoNormal">        rekey_time = 0s<o:p></o:p></p>
<p class="MsoNormal">        pools = primary-pool-ipv4<o:p></o:p></p>
<p class="MsoNormal">        fragmentation = no<o:p></o:p></p>
<p class="MsoNormal">        dpd_delay = 30s<o:p></o:p></p>
<p class="MsoNormal">        send_cert = always<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">        local-1 {<o:p></o:p></p>
<p class="MsoNormal">             auth = pubkey<o:p></o:p></p>
<p class="MsoNormal">             cacerts = strongSwanCACert.pem<o:p></o:p></p>
<p class="MsoNormal">             certs = ios-strongSwanVPNCert.pem<o:p></o:p></p>
<p class="MsoNormal">             id = ios.crystix.com<o:p></o:p></p>
<p class="MsoNormal">        }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">        remote-1 {<o:p></o:p></p>
<p class="MsoNormal">             auth = eap-tls<o:p></o:p></p>
<p class="MsoNormal">             id = %any<o:p></o:p></p>
<p class="MsoNormal">        }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">        children {<o:p></o:p></p>
<p class="MsoNormal">             net-ios {<o:p></o:p></p>
<p class="MsoNormal">                 local_ts = 0.0.0.0/0<o:p></o:p></p>
<p class="MsoNormal">                 rekey_time = 0s<o:p></o:p></p>
<p class="MsoNormal">                 dpd_action = clear<o:p></o:p></p>
<p class="MsoNormal">                 esp_proposals = aes256-sha1-modp1024,aes192-sha256-modp3072,aes128-sha1-modp1536,aes128-sha256-modp1536,aes128-sha256-modp2048,default<o:p></o:p></p>
<p class="MsoNormal">             }<o:p></o:p></p>
<p class="MsoNormal">        }<o:p></o:p></p>
<p class="MsoNormal">    }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">    primary-pool-ipv4 {<o:p></o:p></p>
<p class="MsoNormal">        addrs = 10.92.10.0/24<o:p></o:p></p>
<p class="MsoNormal">        dns = 192.168.92.3<o:p></o:p></p>
<p class="MsoNormal">    }<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Users <users-bounces@lists.strongswan.org> <b>On Behalf Of
</b>Jafar Al-Gharaibeh<br>
<b>Sent:</b> Monday, April 26, 2021 8:21 AM<br>
<b>To:</b> pLAN9 Administrator <admin@pLAN9.co>; users@lists.strongswan.org<br>
<b>Subject:</b> Re: [strongSwan] Strongswan IKEv2 certificates - "user authentication failed" ????<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p>Try the following for "remote":<o:p></o:p></p>
<p><i><span style="font-family:"Courier New"">                remote {<br>
                        auth = eap-tls<br>
                        eap_id = %any<br>
                }</span></i><o:p></o:p></p>
<p>--Jafar<o:p></o:p></p>
<p><o:p> </o:p></p>
<div>
<p class="MsoNormal">On 4/24/21 10:33 PM, pLAN9 Administrator wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p>I am trying to set up Strongswan to act as a remote access  server for an iPhone using IKEv2 certificate auth. It is a major headache!<o:p></o:p></p>
<p>I have made sure to set the SAN in both the server and phone certificate. Here is the the server SAN:<o:p></o:p></p>
<p style="margin-bottom:12.0pt"><i><span style="font-family:"Courier New"">        X509v3 extensions:<br>
            X509v3 Subject Alternative Name: <br>
                DNS:echo.pLAN9.co<br>
            X509v3 Extended Key Usage: <br>
                TLS Web Server Authentication, TLS Web Client Authentication</span></i><o:p></o:p></p>
<p>Here is the phone SAN:<o:p></o:p></p>
<p><i><span style="font-family:"Courier New"">        X509v3 extensions:<br>
            X509v3 Subject Alternative Name: <br>
                DNS:pLAN9-iPhone.pLAN9.co<br>
            X509v3 Extended Key Usage: <br>
                TLS Web Server Authentication, TLS Web Client Authentication</span></i><o:p></o:p></p>
<p>Here is /etc/swanctl/swanctl.conf<o:p></o:p></p>
<p><i><span style="font-family:"Courier New"">connections {<br>
        RA {<br>
                local_addrs = %any<br>
                local {<br>
                        auth = pubkey<br>
                        certs = ECHO.crt<br>
                        id = @echo.pLAN9.co<br>
                }<br>
                remote {<br>
                        auth = pubkey<br>
                        id = %any<br>
                }<br>
                children {<br>
                        net {<br>
                                local_ts = 0.0.0.0/0<br>
                        esp_proposals = aes256-sha256<br>
                        }<br>
                }<br>
                version = 2<br>
                proposals = aes256-sha256-modp2048<br>
                send_certreq = no<br>
                pools = pool<br>
        }<br>
}<br>
pools {<br>
                pool {<br>
                        addrs = 172.16.16.64/29<br>
                        dns = 172.16.16.1<br>
                }<br>
        }</span></i><o:p></o:p></p>
<p><o:p> </o:p></p>
<p>Here is the output of a connection:<o:p></o:p></p>
<p><o:p> </o:p></p>
<p><i><span style="font-family:"Courier New"">01[NET] received packet: from IPHONE_IP[9975] to STRONGSWAN_IP[500] (604 bytes)<br>
01[ENC] parsed IKE_SA_INIT request 0 [ SA KE No N(REDIR_SUP) N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) ]<br>
01[IKE] IPHONE_IP is initiating an IKE_SA<br>
01[CFG] selected proposal: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048<br>
01[IKE] remote host is behind NAT<br>
01[ENC] generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(CHDLESS_SUP) N(MULT_AUTH) ]<br>
01[NET] sending packet: from STRONGSWAN_IP[500] to IPHONE_IP[9975] (456 bytes)<br>
10[NET] received packet: from IPHONE_IP[9959] to STRONGSWAN_IP[4500] (532 bytes)<br>
10[ENC] parsed IKE_AUTH request 1 [ EF(1/4) ]<br>
13[NET] received packet: from IPHONE_IP[9959] to STRONGSWAN_IP[4500] (532 bytes)<br>
10[ENC] received fragment #1 of 4, waiting for complete IKE message<br>
13[ENC] parsed IKE_AUTH request 1 [ EF(2/4) ]<br>
13[ENC] received fragment #2 of 4, waiting for complete IKE message<br>
14[NET] received packet: from IPHONE_IP[9959] to STRONGSWAN_IP[4500] (532 bytes)<br>
14[ENC] parsed IKE_AUTH request 1 [ EF(3/4) ]<br>
01[NET] received packet: from IPHONE_IP[9959] to STRONGSWAN_IP[4500] (180 bytes)<br>
14[ENC] received fragment #3 of 4, waiting for complete IKE message<br>
01[ENC] parsed IKE_AUTH request 1 [ EF(4/4) ]<br>
01[ENC] received fragment #4 of 4, reassembled fragmented IKE message (1552 bytes)<br>
01[ENC] unknown attribute type INTERNAL_DNS_DOMAIN<br>
01[ENC] parsed IKE_AUTH request 1 [ IDi CERT N(INIT_CONTACT) IDr AUTH CPRQ(ADDR MASK DHCP DNS ADDR6 DHCP6 DNS6 DOMAIN) N(ESP_TFC_PAD_N) N(NON_FIRST_FRAG) SA TSi TSr N(MOBIKE_SUP) ]<br>
01[IKE] received end entity cert "CN=pLAN9-iPhone"<br>
01[CFG] looking for peer configs matching STRONGSWAN_IP[echo.plan9.co]...IPHONE_IP[pLAn9-iPhone.pLAN9.co]<br>
01[CFG] selected peer config 'RA'<br>
01[CFG]   using certificate "CN=pLAN9-iPhone"<br>
01[CFG]   using trusted ca certificate "CN=pLAN9 CA 2019-2021"<br>
01[CFG] checking certificate status of "CN=pLAN9-iPhone"<br>
01[CFG] certificate status is not available<br>
01[CFG]   reached self-signed root ca with a path length of 0<br>
01[IKE] authentication of 'pLAn9-iPhone.pLAN9.co' with RSA signature successful<br>
01[IKE] received ESP_TFC_PADDING_NOT_SUPPORTED, not using ESPv3 TFC padding<br>
01[IKE] peer supports MOBIKE<br>
01[IKE] authentication of 'echo.plan9.co' (myself) with RSA signature successful<br>
01[IKE] IKE_SA RA[2] established between STRONGSWAN_IP[echo.plan9.co]...IPHONE_IP[pLAn9-iPhone.pLAN9.co]<br>
01[IKE] scheduling rekeying in 13941s<br>
01[IKE] maximum IKE_SA lifetime 15381s<br>
01[IKE] peer requested virtual IP %any<br>
01[CFG] assigning new lease to 'pLAn9-iPhone.pLAN9.co'<br>
01[IKE] assigning virtual IP 172.16.16.65 to peer 'pLAn9-iPhone.pLAN9.co'<br>
01[IKE] peer requested virtual IP %any6<br>
01[IKE] no virtual IP found for %any6 requested by 'pLAn9-iPhone.pLAN9.co'<br>
01[CFG] selected proposal: ESP:AES_CBC_256/HMAC_SHA2_256_128/NO_EXT_SEQ<br>
01[IKE] CHILD_SA net{4} established with SPIs cc4e7aea_i 0358690a_o and TS 0.0.0.0/0 === 172.16.16.65/32<br>
01[ENC] generating IKE_AUTH response 1 [ IDr AUTH CPRP(ADDR DNS) SA TSi TSr N(MOBIKE_SUP) N(ADD_4_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) ]<br>
01[NET] sending packet: from STRONGSWAN_IP[4500] to IPHONE_IP[9959] (544 bytes)</span></i><o:p></o:p></p>
<p><o:p> </o:p></p>
<p>Strongswan looks like it is connecting fine, but the phone reports the error "User Authentication Failed" and doesn't connect. The phone is using the same certificate to connect to a number of other routers (not Strongswan based) that all have certificates
 signed by the same CA, and those are all working fine.<o:p></o:p></p>
<p><o:p> </o:p></p>
<p>What am I doing wrong here?<o:p></o:p></p>
</blockquote>
</div>
</body>
</html>