Problem/Motivation

In many SSL bugs, we have had to deal with the convoluted way IPs are assigned to sites during SSL site creation. The IP allocation is done in the backend, by touching files in assign_certificate_ip().

Notorious SSL bugs:

#1603702: allows creation of SSL site even if there are no IPs available
#993944: ssl rollback failure
#1784108: pack (and cluster?) modules incompatible with SSL
#1126638: two sites can take the same server IP for SSL
#1612608: Add interface to manage SSL certificates
#1363172: SSL enabled on a disabled site causes https:// domains to redirect to aegir disabled site screen

Proposed resolution

This mechanism should be removed and recreated in the frontend, which should pass the allocated IP to the backend, which should add it to the vhost. In the frontend, this information already lives, somehow, in the hosting_ip_addresses table.

This should also be made to support IP-less allocation, for example by allowing "*" to be passed as an IP. We can assume the frontend sends us proper data and just inject this in the vhost.

Remaining tasks

1. create IP management in the frontend:
1.a) add a unique key to IP addresses table (done)
1.b) refer to that identifier in the hosting_ssl_cert table (done, created a hosting_ssl_cert_ips table instead)
1.c) remove IP / site association in the hosting_ip_addresses table? (or move that to the hosting_site table?) (done, removed)
1.d) send the data down to the backend (in hosting_hosting_site_context_options()) (done, the data is simply the "ip_address" field
1.e) set the IP as "*" for non-SSL sites? or just don't set the IP addresses field for non-SSL sites? (done, we simply don't send the IP for non-SSL sites)
2. remove IP management in the backend, taking IP from the frontend (fairly simple overall)
2.a) ditch functions mentioned below
2.b) take the IP from the frontend
2.c) fix the conflict between the site_ip_addresses and ip_address field
3. test like crazy
3.a) upgrades
3.b) site creation and deletion - done, now works flawlessly
3.c) the above bugs, once this issue is closed

User interface changes

The IP isn't displayed anymore in the site node.

We should consider allowing * as an IP. - we assume SSL means we use IP-based virtual hosting for now.

A new Certificates tab is now available in servers to see the SSL certificates used on a given server. This also details the IP allocation associated with those certificates.

API changes

Backend

The following functions are gone from the backend:

* provisionService_http_ssl::assign_certificate_ip
* Provision_Service_http_ssl::get_ip_certificate .
* Provision_Service_http_ssl::free_certificate_ip
* Provision_Service_http_ssl::clear_certs()

Certificates are not tracked from the backend anymore, other than to make sure that we delete a certificate when it's not used anymore. So we still use *.receipt files, but just to mark a site to SSL certificate association, not the IP allocation. The SSL directory in ~/config/server_foo/ssl.d/uri/ is removed when no site use that directory anymore.

The backend now expects the frontend to send an ip_address field and stopped sending a site_ip_addresses to the frontend.

Frontend

The hosting_ip_addresses table changes. A unique key has been added and it is now only for servers. It is used by the new hosting_ssl_cert_ips table to map those server IP addresses to certificates.

A new field for the IP (ip_address) is sent from the frontend during site install/verify tasks. The field is not present in non-ssl sites. It is the non-resolved IP address of the server assigned to the SSL certificate and must be used by the backend to write the vhost.

SSL certificates are removed from the frontend when sites using it are deleted.

Original report by anarcat

Coming from #993944: ssl rollback failure and #1126638: two sites can take the same server IP for SSL - it seems like an elegant solution would be to simply move IP allocation to the frontend completely, and make the backend obey the chosen IPs. It would be consistent with our "tools not policy" approach and especially the "policy is in the frontend" approach.

I am not sure what is involved here but this is clearly *not* 1.0 stuff, unless the fixes are simple and can be merged from 2.x in later 1.x release cycles.

CommentFileSizeAuthor
#3 SSLwSANS.zip1.31 KBtheMusician
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

omega8cc’s picture

Also, we should allow to use the same IP for many SSL enabled sites, to support TLS SNI (not sure about Apache, but it works in Nginx). I had a patch for this somewhere, but it was for Nginx only.

pearcec’s picture

Apache TLS SNI appears to be working for me.

theMusician’s picture

FileSize
1.31 KB

Hi,

I have ran across this while configuring Aegir to support SSL with Service Alternate Names (SANs). Aegir out of the box does not support this because it enforces one IP address per SSL certificate. Once you add more than 1 SSL enabled site, per IP, managed by Aegir, SSL support fails.

This is avoided by not enforcing one site per IP, though this I imagine will cause issues for non SAN SSL certificates.

I was thinking that keeping SSL IP address allocation as it is would be proper, and in addition, exposing an option per site to enable SAN. With this option selected, the check for the IP address in the assign_certificate_ip method would be avoided.

The first attached patch allows for multiple sites to listen on port 443, rather than stuffing a single IP per site into the conf file. This is a temporary solution, as a proper one will recognize the site as SAN enabled, and then change the IP address to *.

The second patch simply comments out the function that checks for a free IP address. I plan on extending this by exposing SANs per site as outlined above, so that the original function can be used in the applicable situations.

Does this sound reasonable or are there pitfalls that I am not anticipating?

Thanks

Steven Jones’s picture

Version: 6.x-0.4-alpha3 » 6.x-2.x-dev
Issue tags: -aegir-2.0
theMusician’s picture

I am not sure what the issue tags are for. If that means this project is moving forward, that's great.

I am working on my SANs module and am curious about how to hook into the existing SSL files. I would like to modify the code based on whether or not the module is enabled. Can I do this with a hook or must I hardcode it into the existing code like this?

(san is the name of the module thus far)

<?php if ($this->san_enabled): ?>

	<?php foreach ($server->ip_addresses as $ip) : ?>
		NameVirtualHost <?php print "*:" . $http_ssl_port . "\n"; ?>
	<?php endforeach; ?>

<?php else: ?>
		<?php foreach ($server->ip_addresses as $ip) : ?>
			NameVirtualHost <?php print $ip . ":" . $http_ssl_port . "\n"; ?>
		<?php endforeach; ?>

<?php endif; ?>

/**
* Not needed for our RedHat Box which has SSL enabled but is checked after this module, thus throwing an annoying *warning upon httpd restart. 
*/

#<IfModule !ssl_module>
#  LoadModule ssl_module modules/mod_ssl.so
#</IfModule>

The API for the functions is great, but I am not aware of how to override the classes like this one, http://api.aegirproject.org/api/Provision/http--http.ssl.inc/function/pr...
Any tips or guidance would be appreciated. Thanks.

wipeout_dude’s picture

I would absolutely support manual IP address management in the front end or at the very least remove the "automation" practices in provision to make it a more manual and reliable assignment process.. In my current testing I am getting all sorts of strange results like multiple ssl sites on a single IP or multiple IP's showing in the frontend for non-ssl sites with no corresponding Apache directives for the vhost configs..

These issues are far too dangerous to ignore.. Imagine if IP's for a site are changed by the Aegir/provision automatic IP assignment logic and suddenly a domain is resolving to a competitors site?? The fallout would be massive..

For what its worth my suggestions are as follows..

1) By all means maintain a list of IP's on the server in the front end.. Something like it is now is fine but the IP's are not configured in any Apache directives at server level.. It is simply a list of available IP's..

2) Apache IP related directives (eg VirtualHost etc..) should ONLY be specified in the vhost config files.. Not at server or platform levels.. This will reduce the NameVirtualHost warning messages when restarting Apache where unused IP's are associated with a server but not with a site.. It will also mean its all cleaned up properly when a site is deleted..

3) IP addresses are manually assigned at site level when creating or editing an ssl site..

4) A single IP to site mapping table/file would probably be the best way to record the IP assignments which would allow continued functionality in the backend and better control in the frontend.. The administrator could quickly see which IP addresses are used and where or which IP addresses are available..

Obviously there are knock on issues that would need to be addresses, for example defining front end access and permissions to assign IP addresses to sites but I feel that this process is critical and MUST be correct to avoid downtime or misconfiguration of sites..

There is some crossover here with my other thread here http://drupal.org/node/1355856 where I feel that Aegir/Provision should ONLY define vhosts and not try and take over the Apache server meaning its will be more compatible with running other sites and systems on the same server and will make implementation for sysadmins far simpler and less risky..

blueprint’s picture

I have patches for Apache (http.ssl.inc and the templates) ....

As soon as I've got a sandbox, I'll post our patches (or a branch?)

blueprint’s picture

this is almost exactly what we've done. As far as I'm aware, there is no reason not to 'mix' and match ip assigned and non-assigned virtualhosts. The ServerName directive is always in place (for sni) and the ip assigned virtuals are unambiguous.

Am I missing something? I haven't tested it yet.

blueprint’s picture

There seem to be two parts to this process if it is to be 'easy' for the 1.x branch and 'complete' for the 2 branch.

As it is now to support 1.x

  1. adding the field ip to hostmaster_site (node and form api additions)
  2. modifying the http.ssl.inc (obtain ip from site_config instead of lock file)
  3. adding the case/switch to the templates (4 in total)

Whereby 3 also needs to be done for nginx.

Seems easy enough to me. The 'server' module needs to be refactored later but would not get in the way, as far as I can see.

The only point at which hostings server ip assignment and the deployment of ssl now interact is in the http.ssl.inc provisionService_http_ssl class

$ip = provisionService_http_ssl::assign_certificate_ip($ssl_key, $this->server);

obtaining ip from if $this->context-> instead doesn't appear to have a penalty. And it doesn't effect the creation of certificates either.

In any case, because of the need to override the templates in 1.x (http://drupal.org/node/1356150), we're doing this in production with no problems accross a number of platforms and profiles.

I'd like to push our code (we're also now in a sandbox with an LDAP AUTH module for hostmaster) into a sanbox ... where?

Greetings,
Mark

theMusician’s picture

Hi Mark,

Your work sounds promising. Have you had any experience using a wildcard in your IP address allocation for SSL? That is what we are currently doing because of how we support Service Alternate Names.

"1. adding the field ip to hostmaster_site (node and form api additions)"
Would this be a dropdown with IP addresses that Aegir is aware of or a text box which would allow for any IP address to be submitted?

As wipeout_dude mentioned above #6, SSL needs to be handled with care. Aegir in the end needs to maintain the robustness and rollback features that make it such a great hosting management tool.

I would be interested in looking at your patches. Can you put them on bitbucket or github?

Many thanks.

blueprint’s picture

What we're doing depends on sni. That is, all virtuals are presently *:443.

What we do is extend the site creation form (node_form) and add the ip field. If it's present (for a site node) we use it in the vhost.tpl.php. If not, fallback to the ip address. AND we override a method in http.ssl.inc.

There are no problems with rollbacks, creation of certs, deletions of certs and the like.

What we have NOT tested is the deployment to other (cluster web heads) and I'm now testing the mixing of IP and SNI virtuals.

It's not, strictly speaking even necessary to pay any attention to the list of ip addresses as long as the one function in http.ssl.inc is overridden
$ip = provisionService_http_ssl::assign_certificate_ip($ssl_key, $this->server);

Is the relevant function. What I'm writing at the moment utilizes the existing hosting_ip methods (utility methods from the core hosting modules) to re-use the tables. That'll take me till friday to have ready.

In the long term, a bunch of code needs to be refactored out since it's overdeterministic (can such a thing happen!!:) but it's not really of consequence (at least I'm not seeing any errors with day to day provisioning/backups/deletes, etc)....

I should have some code to post friday (I'm testing on production clones to see what happens with real-world platforms)...

blueprint’s picture

As far as #6 is concerned, the RULE is ONLY assign an IP address if one has been fixed for this site. It is a static value which is not obtained from a pool or otherwise acted upon. Create a site. Enter the IP address. One is found, it is used (provisionConfig_http_ssl). Otherwise, wildcard.

That's the way it should be :)

I just looked at the code you posted and that's what we did originally (pushed the modified sources to our deployments using puppet), not even supporting ip based virtuals at all.

theMusician’s picture

blueprint, any code to share? I like your idea but I am having a difficult time testing the changes you have made without seeing much of the code. Currently, my approach works for everything except migrations between platforms, yet your approach, you say is solid. I would like that peace of mind as well.

Thank you for your continued effort in improving virtual SSL support.

blueprint’s picture

Sorry about the delay! I'm a sysadmin, so drupal is only a small part of my job:

http://drupal.org/sandbox/blueprint/1331024

is my sandbox with our aegir ldap auth (creates a form on site add for added ldap auth for apache configs). There I have included all the 'hacked' aegir configs (overriding /usr/share/drush/commands/provision 'stuff').

I'm still looking at a module approach, but, frankly as long as I'm using the aegir packages (debian from the aegir project) ... I must write over some of the package files anyway (I use puppet which checks the consequences of package installs and replaces files the packages have modified from a list that 'they shouldn't).

In any case, if I get back to it any time soon, i'll try to let you know. It's a bit of a 'should move to core' thing, though....

theMusician’s picture

Thanks for the repo. I found the code down there in the /usr directory. I will diff it against mine on Monday. I appreciate you sharing your findings and agree it should be something moved into core or as an add on to Aegir if appropriate.

I will post my test results here and hope to have it into production soon. My current system for the SSL is fairly robust but it has a hard time with migrations.

theMusician’s picture

We accomplished the same workaround but with different methods. :)

I created a blueprint branch in my aegir install and ran your modified code, I run into the same problem but running your version made me aware of this.

My main hostmaster install manages several remote servers and I only have issues when I need to migrate between platforms. I believe this is caused by my wonky symlinks to files that do not exist on the central hostmaster. http://community.aegirproject.org/node/29/talk#comment-1136 mentions the symlink setup I use. I am going to try a few things out but I do feel progress has been made and I am closer to a solid implementation.

Thanks again blueprint.

theMusician’s picture

All right, I have made progress.

For simplicity, I will propose this as my Aegir infrastructure.

=========
||Aegir Hub ||
=========
|
|
==================
|| Remote Production Host ||
==================

The major inconvenience I continued to run into with my original alterations and blueprints version was that Aegir refused to copy the openssl.key and openssl.crt files from the Aegir Hub because they are symlinks to a destination on the remote server, not the Aegir hub. I have made these symlinks. Please see http://community.aegirproject.org/node/29/talk#comment-1136 for further background information.

When these files are not copied properly, apache then flips out and refuses to restart until those files are in place. Until now I have been moving the files by hand on the remote server, restarting apache, and then doing the same on my Aegir hub and verifying the site.

A solution that appears to work so far is to place bogus files on the Aegir hub so that the symlinks point to files, even though they do not contain the crt or key contents, and this seems to solve the issue. The files are copied and apache restarts successfully.

What is odd is that Aegir complains that the files, prior to the bogus files being in place, do not exist in the directory config/ssl.d/sitename. Once the site migrates to a new platform on the remote server, that directory is irrelevant as the ssl configurations are all stored in /var/aegir/config/servername/ssl.d/sitename. These particular files never have a problem during migrations.

My question is, why does Aegir care about the files in /config/ssl.d/sitename when they are not used on the remote host? Is this something that pertains to dedicated IP addresses per SSL certificate and not our Service Alternate Name configuration?

anarcat’s picture

Status: Active » Needs work

Hi mark and themusician. First off, thanks for your thorough investigation of the problem, I think you are really addressing the core of the issue and are very close to a solution!

I had missed your progress, partly because you didn't mark your code as "needs review". :) I will nevertheless provide such a review, since this is an issue we absolutely need to finish for the SSL code to be complete.

Right off the bat, i think we are addressing too many issues at once here. From this post from theMusician, I feel I understand this implements support for SANS (Service Alternate Names) and SNI (Server Name Indication) have been mentionned earlier in the thread. In my opinion, those are completely different issues that should be treated separately. We want to support those, but we should proceed one step at a time, so please open separate feature requests for those issues.

Now, as for the issue at hand here, which is to move the SSL IP allocation to the frontend, I am not clear on whether the progress was actually made...

I saw the .zip file submitted by theMusician (thanks!), but the patches in it are not sufficient: they just turn off IP address handling, probably to be able to implement the above SNI/SANS features, so those really do not belong here, although they may part of the work necessary to move IP allocation to the frontend (since it removes IP allocation :). (By the way, you would have more luck getting your patches reviewed if you would submit them individually in the issue, and not in a zip file.)

I have also reviewed blueprint's code, which sits in a sandbox, but an unrelated one. The code is mostly similar, but also introduces unrelated whitespace changes and comments. (Again here: if you want to push your changes in a sandbox, create a sandbox that is a fork of the provision project, do not push random files in place like this, as it is much harder to review for us and is therefore much less likely to be considered for inclusion.)

So we are still stuck with the core of the problem here: the IP allocation is done by touching files in the backend now, and from what I understand, there is no good reason for that. This mechanism should be removed and recreated in the frontend, which should pass the allocated IP to the backend, which should add it to the vhost.

This should also be made to support IP-less allocation, for example by allowing "*" to be passed as an IP. We can assume the frontend sends us proper data and just inject this in the vhost.

Considering all this, I am marking this as needs work, please do open new issues for the features that you have correctly outlined as missing, and do not give up on this issue! :)

Thanks again for your contribution to the aegir project.

anarcat’s picture

I have just noticed the SAN issue already exists, please see #1516506: SAN certs and ssl.map. theMusician, please resubmit your patches there after rerolling to take into account the fact that some people may still want to use IP-based certificates. :)

The SNI issue is still pending a specific feature request.

anarcat’s picture

As for an implementation of the task at hand, I have noticed that there *is* a registry of site->IP mappings in the frontend, during investigations of this bug: #1603702: allows creation of SSL site even if there are no IPs available. It is in the hosting_ip_addresses table. It doesn't allow us to make decisions on whether an IP is free or not, because it is unclear in the table if the site shared an SSL certificate with another site, if it's enabled, etc.

Still, it's a good start and we should probably use that table in our checks. In fact, we could probably make an educated guess only based on that table and just remove the right to the backend to set the IP itself.

anarcat’s picture

Issue summary: View changes

issue summary

anarcat’s picture

Issue summary: View changes

update affected functions

anarcat’s picture

I updated the issue summary to clarify the task at hand. Now I'll look at creating a branch to hack the allocation code into the frontend.

anarcat’s picture

Issue summary: View changes

mention frontend table

anarcat’s picture

One key change we'll need to do, I think, is to stop mapping storing an IP/site association. The association is really more between server/IP and SSL certificates. I am not sure we really need to stop storing the IP/site mapping, but we *do* need a IP/cert association, that's for sure, because this exists in the backend...

Quite horrible mess i got myself into. :P

anarcat’s picture

Some work has been done in the frontend, on the dev-ssl-ip-allocation-refactor branch. it still needs work, and absolutely no work was done on the backend.

Still unsure whether i want to ditch the IP/site association, but so far it doesn't really get updated directly unless the site is running SSL now.

theMusician’s picture

Great job spearheading this anarcat. My work has diverged from Aegir for a few months but I do want to help with this issue as I am sure I and others will run into it again.

Allowing a site to be mapped to a specific certificate would be great. That is kind of what happens now when you enable SSL on a site within Aegir.

Currently when Aegir creates a certificate we replace the contents of the created SSL directory in /var/aegir/config/server_name/ssl.d with symbolic links to our actual certificates. If we could specify the path to the certificates in the Aegir frontend it would negate the need to manipulate the generated SSL certificates.

If a person has 4 sites on a platform that exists on a server with an SSL certificate the user might want 2 of the sites to not use SSL so they would turn SSL off on those sites within Aegir. However, the other 2 sites might be listed on the certificate with a Service Alternate Name so each site should be able to reference that one certificate.

I guess that means I support your thinking that there should be a site/certificate association but not necessarily an IP/site association. It seems like the thinking back in comment #12 supports this line of thought as well.

I'll try to grab the dev branch and test it on a vm to see those changes you mention. Great work!

anarcat’s picture

Issue summary: View changes

update todo

anarcat’s picture

Some progress here. I haven't committed my code, because I got bit by this last time - my commits were just wrong and I had to revert some. The code is pushed to the dev branch, but isn't ready: none of this is really tested yet and there are still some broken bits.

But now the idea is that the hosting_ip_addresses table stores only server -> IP mappings, instead of including all the sites. We have a separate table to map SSL certificates to ip addresses (hosting_ssl_certs_ip), which is necessary because we may need multiple IP addresses per SSL certificate, in case of clusters. This simplifies the database schema significantly in case we don't use SSL, and is still coherent when SSL is enabled.

With those changes, the sites do not have an IP allocated to them at all, and it is not displayed in the frontend. A nice addition here would be a listing of SSL certificates and owners to debug things, but in the meantime a SELECT with a single JOIN is enough to show IP / cert mapping.

So todo here:

1. fix the migration path between site/IP and cert/IP mapping, as the current code is broken
2. write cluster support (make sure multiple IP/cert mappings are added and removed on cert creation/destruction)
3. send this data to the backend

The API changes still need to be documented in the upgrade path and testing must be done. Whee!

anarcat’s picture

Issue tags: +aegir-2.0

Test procedure:

  1. install aegir (or reinstall) to the branch point, d49c7f9
  2. enable the SSL feature
  3. add an IP to the server, enable SSL support
  4. create a site with an SSL certificate
  5. backup the hostmaster site to avoid having to repeat the previous steps
  6. upgrade the code to the head of the branch
  7. run updatedb
anarcat’s picture

Issue summary: View changes

update todo and API changes

anarcat’s picture

Alright, the migration path is working now. We still need to send the data to the backend, support clusters and clear up the backend code... See the issue summary for the current todo.

anarcat’s picture

Issue summary: View changes

update todo

anarcat’s picture

Issue summary: View changes

update todo

anarcat’s picture

The ip_address is passed to the backend, and I am working on fixing the backend now.

While I was there, I implemented parts of #1612608: Add interface to manage SSL certificates in the frontend.

I have just realized that, by delegating IP management to the frontend and removing it from the backend, it becomes more difficult for the backend to figure out when a certificate can be removed, as the way this utilization was tracked *was* through IP addresses. This may mean we will need to keep track of SSL/site allocations in the backend too... :(

anarcat’s picture

Issue summary: View changes

update API change

anarcat’s picture

Issue summary: View changes

another api change

anarcat’s picture

Issue tags: -aegir-2.0

So it seems that the backend already has URI-based certificate management: that is how it actually decides to cleanup certificates already, so there's not a lot of change that needs to happen there. I have refactored that code nevertheless. The IP-based allocation is now gone from the backend.

However, a new issue crept up: I have overlooked the site_ip_addresses field that is *already* propagated from the frontend. this seems to be a major design issue in the new architecture, so we'll need to look again at the already existing parameters passed from the frontend - maybe there isn't a need for a special field for the SSL code...

Actually, the site_ip_addresses was sent *from the backend* to the frontend when SSL sites were created... Then this was used back again by the backend, for example in the DNS code... quite a mess!

It seems clear that this interface should change. The frontend should send the IP addresses at it sees fit, even if SSL is not enabled. Then the backend can decide what to do with it, for example by using * instead of the IP for HTTP vhosts or populating DNS zonefiles.

So micro todo here to finish this:

make the frontend send site_ip_addresses in all cases (instead of ip_address)
make the backend use those IPs instead of guessing (grep for site_ip_addresses)
review the DNS code so that it also uses this instead of guessing
make the frontend send multiple IP addresses for clusters

anarcat’s picture

Issue summary: View changes

note more todos

anarcat’s picture

I found issues with deleting sites in the frontend, where the SSL certificates were still allocated.

Now we take a rather radical approach of simply deleting the certificates from the frontend when no sites use them anymore, that is when sites that were using it are deleted.

anarcat’s picture

Issue summary: View changes

site_ip_addresses is gone

anarcat’s picture

Issue summary: View changes

mention ssl cert deletion in api changes

anarcat’s picture

Issue summary: View changes

add issues to the list of dependent issues

anarcat’s picture

Status: Needs work » Needs review

This is almost finished. I have been able to create and delete sites reliably, and I guess that means we are at a level similar to where we were before the IP allocation was migrated to the frontend, which is great: no regression is the first objective here.

I encourage people to test the dev-ssl-ip-allocation-refactor branch, which is now both on the frontend and backend.

Note that the cluster mode is still broken and there may be more API changes to this issue to support that properly, but I will be following that up in the other issue, #1784108: pack (and cluster?) modules incompatible with SSL.

Next step for me is to install a 1.9 aegir, setup some certificates and see how it can handle upgrades to this branch. If that works, I will merge the work on the main 2.x branch and consider this issue closed, at last!!

_vid’s picture

Great progress anarcat. Thanks for the updates.

anarcat’s picture

Assigned: Unassigned » anarcat
anarcat’s picture

Status: Needs review » Fixed

It looks like things are not breaking on upgrade, in fact everything looks good and proceeds smoothly.

Looks like I had a clue last year when I worked on that stuff. :P

I've merged the branch into 2.x, hurray! Now we need to fix the pack/cluster code to deal with SSL, but at least we have a cleaner slate to start with.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

mccrodp’s picture

Sorry, I'm slightly confused about how the IP's are allocated on the front-end now.

A new Certificates tab is now available in servers to see the SSL certificates used on a given server. This also details the IP allocation associated with those certificates.

So, you somehow specify the IP when you provide Aegir with the SSL cert? What way are IPs selected then for self-signed certs that Aegir generates?

Thanks,
Paul.

blueprint’s picture

Ok, if I've understood correctly, a good test would be to

git clone --branch dev-ssl-ip-allocation-refactor http://git.drupal.org/project/hostmaster.git

and test with, for instance, san certificates, multiple domains on one ip, etc? I'm not certain if allocation in the frontend permits wildcards? (we've got a number of cases where we have a client with a san and 5 or 6 domains on a single ip)....

THANKS for your great work!

anarcat’s picture

the frontend doesn't support wildcards yet, for this, see #1926520: Support Server Name Indication (SNI) for SSL. also, the ssl code has been factored into 2.x, and mostly works (except for this bug #2071317: Incorrect SSL IP is deployed to servers in a web pack), so installing 2.x should get you the latest SSL code.

also, please don't comment on closed issues, otherwise we usually miss your questions! :)

anarcat’s picture

Issue summary: View changes

expand on the API changes, document testing better, remove cluster support from the objectives here, we have a good framework to start with now