Here’s a fun little bug that took me a while to diagnose…
I recently set up an Amazon S3 account to host my large files (audio files in particular). This will offset the bandwidth and server requirements for allowing visitors to stream and/or download files from my sites. (You can thank me later™.) This will become more important as I expand my sites in the (hopefully not too distant) future. I have requested that the files served from my S3 account be SSL encrypted (which makes your web surfing more secure).
I use WordPress to power my site. (WordPress FTW!)
I use a WordPress plugin by Martin Laine called AudioPlayer to enable me to stream audio files so my visitors just click the “play” button to listen to whatever is contained in the audio file. As long as they have Flash installed they don’t need any other media player, and they don’t have to download the file before they listen to it.
I use Firefox for my development browser, but Chrome for my everyday surfing browser (it’s much, much faster).
So there’s the setup.
The bug occurs in Google’s Chrome browser when I attempt to stream the .MP3 file from my S3 account into Martin’s plugin. You click the “play” button and it never connects.
After doing some digging, it looks like Chrome is being a bit too paranoid regarding Amazon S3’s application of a wildcard SSL certificate when trying to access the .MP3. Chrome throws an error that you don’t see warning you about the SSL “mismatch” and preventing the file to load until you act on the error (did I mention that you don’t see it through the player?).
The solution is to navigate to the fully qualified path of the .MP3 file, and read and accept the error message, then everything works fine (both downloading and streaming).
This is Chrome trying to do a good job at warning users of a potential security problem, and S3 doing a good job by allowing people like me to offer their files via SSL. The two just aren’t playing well together.
No you know. You can thank me later™.