公開鍵認証の問題を伴う Strongswan ロードウォリアー シナリオ

公開鍵認証の問題を伴う Strongswan ロードウォリアー シナリオ

Ubuntu 20.04 Strongswan 5.9.1 (ソースからビルド)

swanctl.conf

Android ストロングスワン アプリ

自己署名 CA と証明書を使用しています。

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
        }
    }
}

この設定は、Android アプリの「クライアント ID」が空白の場合にのみ機能します。クライアント ID を追加するとすぐに、次のようになります。

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

androidLkP はこの特定の証明書の CN です。

pkiコマンドを使用して証明書から公開鍵を抽出し、/etc/swanctl/pubkeyフォルダに配置しました。私の目標は、特定のクライアントに個別の構成を用意し、id = %any

pubkeyプラグインがロードされました。

この問題の原因は何でしょうか?

自己署名 CA でも機能しますか、それとも実際に信頼された CA が必要ですか?

答え1

RDNの値は、CNstrongSwan で個別に一致させることはできません (実際に部分 DN として設定し、strongswan.conf で緩和された RDN 一致を有効にしない限り)。

構成された ID は、完全なサブジェクト DN または証明書に含まれる subjectAltName (SAN) のいずれかである必要があります。

関連情報