[squid-dev] [PATCH] ssl::server_name options to control matching logic.
Amos Jeffries
squid3 at treenet.co.nz
Wed May 31 04:58:19 UTC 2017
On 26/05/17 22:08, Christos Tsantilas wrote:
> This patch uses the the "--long-options" ACLs feature which posted to
> squid-dev under the mailthread:
> "PATCH] Adds support for --long-acl-options"
>
>
> Patch description:
>
> Many popular servers use certificates with several "alternative
> subject names" (SubjectAltName). Many of those names are wildcards.
> For example, a www.youtube.com certificate currently includes
> *.google.com and 50+ other subject names, most of which are wildcards.
>
> Often, admins want server_name to match any of the subject names. This
> is useful to match any server belonging to a large conglomerate of
> companies, all including some *.example.com name in their
> certificates. The existing server_name functionality addresses this
> use case well.
>
> The new ACL options address several other important use cases:
>
> --consensus allows matching a part of the conglomerate when the part's
> subject name is included in certificates used by many other
> conglomerate parts (e.g., matching Google but not Youtube).
So this ACL option somehow makes Squid aware of corporate ownership and
political structures and human-world business operations? er, no.
Thankfully the text you are adding to cf.data.pre does a better job of
explaining this option. Please use that text as commit message
description instead of the above confusing fuzz - if you have to at all,
having the docs as part of the patch makes it somewhat redundant to
describe in commit message.
>
> --client-requested allows both (a) SNI-based matching even after Squid
> obtains the server certificate and (b) pinpointing a particular server
> in a group of different servers all using the same wildcard
> certificate (e.g., matching appengine.example.com but not
> www.example.com when the certificate for has *.example.com subject).
>
> --server-provided allows matching only after Squid obtains the server
> certificate and matches any of the conglomerate parts.
>
> Also this patch fixes squid to log client SNI when client-first
> bumping mode is used too.
>
> This is a Measurement Factory project
>
in src/acl/ServerName.h:
* please only use questions to document pre-existing code that you are
not entirely sure of its behaviour, but where a guess is better than
nothing at all.
- I am referring of course to the "Ignore ... names?" questions.
in src/cf.data.pre:
* CONNECT handling is somewhat special because its URI is the authority,
the Host header is ignored. So mentioning it here is wrong.
- s/ target (a.k.a. Host header or URI) / target (a.k.a. URI) /
in src/ssl/ServerBump.h:
* "the SSL client SNI name" is both wrong and redundant.
- SSL clients cannot send SNI, only TLS clients can send TLS extensions.
- the 'N' in SNI is for name. So that text says "server name
indication name".
- "TLS client delivered SNI value. Empty string if none has been
received." would be more accurate documentation for this member.
+1 with that polishing. Thank you.
Amos
More information about the squid-dev
mailing list