Escenario de Strongswan roadwarrior con problemas de autenticación de clave pública

Escenario de Strongswan roadwarrior con problemas de autenticación de clave pública

Ubuntu 20.04 Strongswan 5.9.1 (construido desde la fuente)

swanctl.conf

Aplicación Android Strongswan

Estoy usando una CA y certificados autofirmados.

roadwarr-ikev2-pubkey {
    version = 2
    #proposals = aes192gcm16-aes128gcm16-prfsha256-ecp256-ecp521,aes192-sha256-modp3072,default
    proposals = aes256-sha1-modp1024,default
    rekey_time = 0s
    pools = primary-pool-ipv4
    fragmentation = yes
    dpd_delay = 30s
    local_addrs = %any
    # dpd_timeout doesn't do anything for IKEv2. The general IKEv2 packet timeouts are used.
    local-1 {
        #auth = pubkey
        certs = Srv1SwanCert.der
        id = ub-srv-1
    }
    remote-1 {
        # defaults are fine.
        #auth = pubkey
        #id = androidLkP
        id = %any
    }
    children {
        roadwarr-ikev2-pubkey {
            # local_ts = 10.10.5.0/24
            local_ts = 0.0.0.0/0
            rekey_time = 0s
            dpd_action = clear
            # esp_proposals = aes192gcm16-aes128gcm16-prfsha256-ecp256-modp3072,aes192-sha256-ecp256-modp3072,default
            esp_proposals = aes256-sha1-modp1024,default
        }
    }
}

Esta configuración solo funciona si en la aplicación de Android "Identidad del cliente" está en blanco. Tan pronto como agrego una identificación de cliente, aparece esto:

15[CFG] selected peer config 'roadwarr-ikev2-pubkey'
15[IKE] no trusted RSA public key found for 'androidLkP'

androidLkP es un CN en este certificado en particular.

Extraje una clave pública de un certificado usando el comando pki y la coloqué en /etc/swanctl/pubkeyuna carpeta. Mi objetivo es tener configuraciones separadas para clientes específicos y no usarid = %any

El complemento pubkey está cargado.

¿Qué podría causar este problema?

¿Funciona con una CA autofirmada o requiere una CA real y confiable?

Respuesta1

El valor del CNRDN no puede coincidir individualmente en strongSwan (a menos que realmente lo configure como DN parcial y habilite la coincidencia de RDN relajada en strongswan.conf).

La identidad configurada debe ser el DN del sujeto completo o un nombre alternativo del sujeto (SAN) contenido en el certificado.

información relacionada