I am trying to run SSH and HTTPS both on Port 443 on an Ubuntu server. I found SSLH which seems to do the trick. My only problem is getting it to start on system boot. Supposedly, it is already setup to do. An "sudo update-rc.d sslh defaults" says it is already setup. However, rebooting results in it not starting until I start it manually with a good ol' "sudo /etc/init.d/sslh start" command. I have tried using update-rc.d to remove it and add it again. This did not work either. I was not able to find anything in the logs, but that being said, I am not exactly sure which log file would hold this kind of information. Any help would be greatly appreciated.
Did you check for symlinks in the /etc/rc?.d/ directories? Possibly this initscript "defaults" are broken, try:
updates-rc.d sslh start 23
..for instance to tell it to start in runlevels 2 and 3 (which I assume is what you're booting into). After running that looks in /etc/rc2.d/ and /etc/rc3.d/ for an actual symlink. (I'm a Red Hat guy, guessing at Ubuntu being similar) If you don't see symlinks then you have to make them by hand. If you do see symlinks then it's broken at startup, you'll need to open /etc/init.d/sslh and add some logging redirects from the startup commands to see why they're failing.
It turns out the vm I was working on was still on Karmic. I had updated packages which I thought would take care of any bugs related to init.d since they have all been listed as fixed. I did a release upgrade to Lucid and the problem went away.