When peer verification is enabled, it is common for clients to also check whether the the hostname of the server they are connecting to matches one of two fields in the server certificate: the SAN (Subject Alternative Name) or CN (Common Name).
as per RFC 6125, published in '2011 the validator must check SAN first, and if SAN exists, then CN should not be checked.
[
{rabbit, [
{log, [
{file, [
{level, info},
{size, 5242880},
{count, 2}
]}
]},
{config_entry_decoder, [
{passphrase, {file, "$$$APP_DATA_LOCATION$$$/Config/G5BUFY35GE4R5ZVC/QKP4GX66.txt"}}
]},
{tcp_listeners, []},
{ssl_listeners, [5671]},
{crl_check, false},
{ssl_options, [
{cacertfile,"$$$APP_DATA_LOCATION$$$/Certificates/RabbitMQ/ca.pem"},
{certfile, "$$$APP_DATA_LOCATION$$$/Certificates/RabbitMQ/RMQ_crt.pem"},
{keyfile, "$$$APP_DATA_LOCATION$$$/Certificates/RabbitMQ/RMQ_crt.key"},
{password, $$$ENCRYPTED_PASSWORD$$$},
{verify, verify_peer},
{fail_if_no_peer_cert, true},
{versions, ['tlsv1.2']},
{depth, 2},
{ciphers, [
"ECDHE-ECDSA-AES256-GCM-SHA384",
"ECDHE-ECDSA-AES128-GCM-SHA256",
"ECDHE-RSA-AES256-GCM-SHA384",
"ECDHE-RSA-AES128-GCM-SHA256",
"DHE-RSA-AES256-GCM-SHA384",
"DHE-RSA-AES128-GCM-SHA256",
"ECDHE-ECDSA-AES256-SHA384",
"ECDHE-ECDSA-AES128-SHA256",
"ECDHE-RSA-AES256-SHA384",
"ECDHE-RSA-AES128-SHA256",
"ECDHE-ECDSA-AES256-SHA",
"ECDHE-ECDSA-AES128-SHA",
"ECDHE-RSA-AES256-SHA",
"ECDHE-RSA-AES128-SHA",
"AES256-GCM-SHA384",
"AES128-GCM-SHA256",
"AES256-SHA256",
"AES128-SHA256",
"AES256-SHA",
"AES128-SHA"
]},
{honor_cipher_order, true},
{honor_ecc_order, true}
]}
]}
].
When peer verification is enabled, it is common for clients to also check whether the the hostname of the server they are connecting to matches one of two fields in the server certificate: the SAN (Subject Alternative Name) or CN (Common Name).
Yusuke,
It’s more involved. In layman’s terms, it should be “any identity that passes verification”, as you
expect and our docs tries to communicate. However, if you read FC 5280, section 4.2.1.6 [1],
there are several additional, and fairly vaguely specified, requirements present.
In general, a SAN takes precedence over the CN. This has been the recommendation for over a decade IIRC.
Therefore if you have both set, the SAN will be checked first. However, different TLS implementations can have
slightly different interpretations of [1]. Our docs are not specific to .NET.
You can implement your own verification function. The client very much delegates this to standard available .NET validator functions [2]
or a user-provided one [3].
Therefore it’s not obvious to me that we should update our docs. Not only there can be implementation-specific aspects,
you or MassTransit can affect how exactly peer verification is performed.
--
You received this message because you are subscribed to the Google Groups "rabbitmq-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
rabbitmq-user...@googlegroups.com.
To view this discussion on the web, visit
https://groups.google.com/d/msgid/rabbitmq-users/861d76b9-e47c-4d59-a70d-0ef87fa016a8%40googlegroups.com.