DNS CNAME не будет работать - браузер проверяет имя хоста, указанное в URL, по сертификату и не интересуется, разрешено ли имя хоста, следуя CNAME куда-либо еще.
Я не уверен, что центры сертификации выдают много подстановочных сертификатов, или какова их поддержка. Если ЦС готов это сделать, вариант создания сертификата с foo.com в качестве SubjectAlternativeName является опцией. Я думаю, что поддержка браузера сейчас широко распространена.