locka99 / opcua

A client and server implementation of the OPC UA specification written in Rust
Mozilla Public License 2.0
501 stars 131 forks source link

Simple server invalid hostname #159

Open MightyPork opened 2 years ago

MightyPork commented 2 years ago

I'm trying to connect to the simple-server sample and read a list of its endpoints. This always fails for me.

    let server_url = "opc.tcp://127.0.0.1:4855/";

    let mut client = ua::ClientBuilder::new()
        .application_name("DiscoveryClient")
        .application_uri("urn:DiscoveryClient")
        .create_sample_keypair(true)
        .trust_server_certs(true)
        .session_retry_limit(3)
        .client().unwrap();

    if !ua::is_opc_ua_binary_url(server_url) {
        panic!("Bad opcua url: {}", server_url);
    }

    println!("Getting eps");
    let endpoints = client.get_server_endpoints_from_url(server_url).expect("Got endpoints");

errors:

[00:00:00.808] (7f6a877ae900) DEBUG  Validating cert with name on disk OPC UA Sample Server [83865e42f0ff7aa9dd068d6b6c58390ef222966c].der
[00:00:00.808] (7f6a877ae900) INFO   Certificate is valid for this time
[00:00:00.808] (7f6a877ae900) ERROR  Cannot find a matching hostname for input 127.0.0.1, alt names = M202
[00:00:00.808] (7f6a877ae900) WARN   Certificate OPC UA Sample Server [83865e42f0ff7aa9dd068d6b6c58390ef222966c].der does not have a valid hostname
[00:00:00.808] (7f6a877ae900) INFO   Writing X509 cert to /home/ondra/rust/opc-reader/pki/rejected/OPC UA Sample Server [83865e42f0ff7aa9dd068d6b6c58390ef222966c].der
[00:00:00.809] (7f6a877ae900) ERROR  session:3 Server's certificate was rejected
[00:00:00.809] (7f6a877ae900) ERROR  Got an error while creating the default session - BadCertificateHostNameInvalid

The cert (as PEM because github refuses the upload):

-----BEGIN CERTIFICATE-----
MIID2jCCAsKgAwIBAgIRAMIWJggja7ZmDD59Ot4EV1AwDQYJKoZIhvcNAQELBQAw
ezEdMBsGA1UEAwwUT1BDIFVBIFNhbXBsZSBTZXJ2ZXIxHTAbBgNVBAoMFE9QQyBV
QSBTYW1wbGUgU2VydmVyMR0wGwYDVQQLDBRPUEMgVUEgU2FtcGxlIFNlcnZlcjEL
MAkGA1UEBhMCSUUxDzANBgNVBAgMBkR1YmxpbjAeFw0yMjAxMjUxMzI3MDJaFw0y
MzAxMjUxMzI3MDJaMHsxHTAbBgNVBAMMFE9QQyBVQSBTYW1wbGUgU2VydmVyMR0w
GwYDVQQKDBRPUEMgVUEgU2FtcGxlIFNlcnZlcjEdMBsGA1UECwwUT1BDIFVBIFNh
bXBsZSBTZXJ2ZXIxCzAJBgNVBAYTAklFMQ8wDQYDVQQIDAZEdWJsaW4wggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCt9kYtS6V344hj5y8ZlYDZrphhKa5e
s1tQQOEhvc6lHqN7sYt1bOim37tg3Iq8Gs8TEz9tcP64OeQ8bQ6X3THmaYCrqe4K
raPTtgvWWP1LnlRFuLeEPmGJIfAWBkcuJo4vyB3G5veR72H0rhR1Z14Y21ge1FLW
rFD92h4pzHB2eI/Z7WKlAz/XYh2LZfoKvBK3yhv3yFFLIkYtBnbxCOTHd2YwF5bW
NFutyGJo6V7ygo5+fmFmtWZhzNNBFpNr70mzrwoax0qg4WN2KxjgJIzd/StC4fTl
6pDa/zgEFjeZyGAsnPFvpwMh+Zf3VlifkIv7uaN2y8O/2wb3ZFGKWSeDAgMBAAGj
WTBXMAsGA1UdDwQEAwIC9DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
KQYDVR0RBCIwIIYYdXJuOk9QQyBVQSBTYW1wbGUgU2VydmVyggRNMjAyMA0GCSqG
SIb3DQEBCwUAA4IBAQBqo3ViIHiE3m+5Hoc5LLAQIDgEsqYr+ML8bG+C5CgSBprO
gwvRaJrlJ43V8YbSXJFLbLx9H48b7WWMuHGM/6wgq7UcpK9s3KSuVJX4p6h7qOK4
QZQj/5RHu8sVrtZPLFQYfPYt/9Iw2QrS3OKtZgWHKxVORZYOZ8a7mAFb0j1bmsMo
9fCgnQv9YvDTTGCY1sPm6fH6Cnw4Bh4l+a4OQlkjzXJnfundJZvPDbqNpr7kKsHc
X3c/E8E6jpgx+daO6PKyuqbcq/MJfpMbxBUky/hwAvnOH9Qveee9R+01EbZias3i
xkOeNhHZ3FC8pYrNac45RIpwfJXYf2AZ9JDL8xs7
-----END CERTIFICATE-----