Drupal 10, the latest version of the open-source digital experience platform with even more features, is here.Each server can have multiple IP addresses associated with it. Each web pack can have multiple servers associated with it. When making a new cert, its supposed to pick an unused IP from those that are available on the server to associate with it. However, if you enable SSL on a site on a platform on a webpack with 2 servers, it grabs the first available IP from the first server and deploys that configuration to both servers in the webpack. This has the effect where SSL will only work when accessing the site from the first server, and then doesn't work when it gets served up from the second server.
| Comment | File | Size | Author |
|---|---|---|---|
| #5 | 2071317_05-touchups.patch | 859 bytes | cweagans |











Comments
Comment #1
anarcat CreditAttribution: anarcat commentedComment #2
anarcat CreditAttribution: anarcat commentedi confirm this is totally broken, even conceptually in code (ie. it's not a bug as much as the implementation is simply incomplete).
the problem is in hosting_ssl_get_ip() which returns a single IP instead of a server_name => ip_address mapping, or at least a list of IPs.
so that should be a simple fix... untested patch...
i am probably missing something, but it's a start!
Comment #3
anarcat CreditAttribution: anarcat commentedi've re-opened the dev-ssl-ip-allocation-refactor branch on both hosting (new) and provision for those patches, that would welcome some testing.
the provision patch is slightly different: we use a wildcard if no IP is found in the array, which seems like a better failure mode... plus it will make SNI possible to implement simply in the frontend, by not passing the address to the backend at all.
see also #1926520: Support Server Name Indication (SNI) for SSL.
Comment #4
anarcat CreditAttribution: anarcat commentednote that this patch will change the API, so http://community.aegirproject.org/upgrading/path needs to be updated.
Comment #5
cweagansThis works very well. I've attached a couple of touchups to the frontend (fixes a notice and capitalizes a status message). Other than that, I think this is ready to go in 6.x-2.x.
Comment #6
cweagansOne other thing:
needs to read:
(The @ before $server in the if needs to be there to get things to match properly.)
Comment #7
anarcat CreditAttribution: anarcat commentedalright, i commited your toutchup and pushed everything to 2.x. thanks for the testing!