Conexión de Win 10 roadwarrior a AWS strongSwan VPN: no se puede encontrar un certificado que se pueda utilizar con el protocolo de autenticación extensible

Conexión de Win 10 roadwarrior a AWS strongSwan VPN: no se puede encontrar un certificado que se pueda utilizar con el protocolo de autenticación extensible

Logré conectar dos subredes de AWS en diferentes zonas a través de strongSwan VPN usando ike2 con cifrado aes256. Por lo tanto, se crea la clave de CA maestra, el certificado de CA autofirmado, así como las claves públicas y privadas para ambas puertas de enlace. Después de eso, creé certificados para roadwarrior y los exporté al cliente win10 en formato p12.

La conexión entre esas dos LAN funciona, pero no puedo conectar el cliente roadwarrior.

Importé los certificados a win10 y normalmente están visibles en el administrador de certificaciones.

Luego creé la configuración de VPN usando el cliente VPN de Windows10, y cuando lo ejecuté recibí el mensaje de Windows:

No se pudo encontrar un certificado que pueda usarse con este protocolo de autenticación extensible.

El check in certmagrtodo está en el lugar.

El método de autenticación utilizado es EAP-tls y funciona sin problemas en el modelo LAN a LAN.

La configuración de la propiedad de seguridad de Win10 VPN es:

Type of the VPN: IKE2 , Data Encryption: Require encryption (disconnect if server declines) Authentication: Use Extensible Authentication Protocol -> Microsoft smart card or other certificates (encryption enabled) -> Properties ---> Use certificate on this computer ---> Verify the server's identity by validating the certificate ---> Trusted Root Certificate authority ----> Both certificates CA and the client p12 certificate are visible and checked

Aquí estáel ipsec.confarchivo

config setup
    charondebug="cfg 2, dmn 2, ike 2,net 2"
    uniqueids=yes
    strictcrlpolicy=no

conn %default
    fragmentation=force
    forceencaps=yes
    rekeymargin=3m
    mobike=no
    keyingtries=%forever
    ike=aes256-sha256-modp2048,aes256-sha2_256-modp1024!
    esp=aes256-sh256,aes256-sha2_256!
    ikelifetime=1h
    lifetime=8h
    dpddelay=30
    dpdtimeout=120
    dpdaction=restart
    authby=pubkey
    leftcert=vpn-west-public-certificate.pem
    leftsendcert=always
    keyexchange=ikev2
    type=tunnel
    leftca="C=DE, O=Orgname, CN=Orgname Root CA"
    leftid=13.57.xx.yy
    left=10.0.0.208
    leftsubnet=10.0.0.0/16

conn roadw
    right=%any
    rightid=%any
    rightauth=eap-tls
    rightsourceip=10.0.0.64/28
    rightsendcert=never
    rightdns=8.8.8.8
    eap_identity=%identity
    auto=add

Aquí está elIPsec.secretosarchivo

13.57.xx.yy : RSA "/etc/ipsec.d/private/vpn-west-private-key.pem"
username : EAP "passphrase"

La raíz de CA está instalada en el cliente, así como el nombre de usuario.p12. Sospecho que hay algunos ajustes en Linux y Windows de ambos lados.

Además, descubrí que Windows requiere que el nombre de host o la dirección IP aparezcan como parte de ipsec pki - argumentos del emisor en un formulario --san dns:13.57.xx.yy durante la creación del certificado de servidor público, así como del cliente (Windows) El certificado de usuario debe tener CN=$USER" --san $USER. Agregué ambos parámetros pero aún así no hay cambios en el comportamiento.

¿Necesito agregar extKeyUsage? El OID tiene que ser 1.3.6.1.5.5.7.3.2, ya que agregarlo no cambió nada.

Alguna idea de por dónde empezar, parece que Windows10 ni siquiera está iniciando la sesión, por lo tanto me parece que algo anda mal con la configuración del cliente VPN en Win10, además algunos parámetros también deberían modificarse en el lado de strongSwan.

Aquí están los comandos de configuración de certificados para la CA, el servidor y el cliente.

Clave maestra raíz

ipsec pki --gen --type rsa --size 4096 --outform > root-key-for-ca=signing.pem

Certificado de CA raíz

ipsec pki --self --ca --lifetime 3650 --in root-key-for-ca=signing.pem --type rsa --dn "C=DE, O=Orgname Root CA" --outform pem > signed-root-ca-certificate.pem

Clave privada del cliente

ipsec pki --gen --type rsa --size 2048 --outform pem > win10-client1-key.pem

Certificado público de cliente

ipsec pki --pub --in win10-client1-key.pem --type rsa | ipsec pki --issue --lifetime 730 --cacert signed-root-ca-certificate.pem --cakey root-key-for-ca-signing.pem --dn "C=DE, O=Orgname, CN=win10-client1" --san "win10-client1" --flag serverAuth --flag clientAuth --flag ikeIntermediate --outform pem > vpn-win10-client1-public-certificate.pem

Formato portátil P12 para la transferencia de claves privadas personales del cliente.

openssl pkcs12 -export -inkey win10-client1-key.pem -in vpn-win10-client1-public-certificate.pem -name "win10-client1 VPN certificate" -certfile signed-root-ca-certificate.pem -cname "Orgname Root CA" -out win10-client1.p12

Clave de servidor privado

ipsec pki --gen --type rsa --size 2048 --outform pem > vpn-west=private-key.pem

Certificado de servidor público

ipsec pki --pub --in vpn-west-private-key.pem --type rsa | ipsec pki --issue --lifetime 730 --cacert signed-root-ca-certificate.pem --cakey root-key-for-ca-signing.pem --dn "C=DE, O=Orgname, CN=13.57.xx.yy" --san 13.57.xx.yy --san dns:13.57.xx.yy --flag serverAuth --flag ikeIntermediate --outform pem > vpn-west-public-certificate.pem

información relacionada