Update: DNN 4.5.4 introduced SSL support. You can read more about that here:
Setting up SSL in DNN 4.5.4+
For another way to enable SSL a simple example would look like this:
<script language="Javascript1.1" type="text/javascript">
if(location.protocol.toLowerCase() =='http:' &&
location.href.toLowerCase().indexOf('login') > -1 )
location.href = location.href.replace('http:','https:');
if(location.protocol.toLowerCase() =='https:' &&
location.href.toLowerCase().indexOf('login') == -1 )
location.href = location.href.replace('https:','http:');
</script>
The first IF statment in the code above is looking to see if your using http and on the login page then tells the browser to switch to the same location but use SSL.
The second IF statment does just the opposite, so any time you are on a page with the word "login" in the url it will tell the browser to use SSL, if you are not on a url with "login", then it will switch back.
Just change the word "login" with "cart" or whatever might be in the Url if you want to do it with different pages. That is all you need, paste this at the top of your page, (or skin in DotNetNuke), or include it in an external Javascript file that is linked in.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
This next example extends the same process to allow for more pages:
<script language="Javascript1.1" type="text/javascript">
if(location.protocol.toLowerCase() =='http:' &&
( location.href.toLowerCase().indexOf('login') > -1 ||
location.href.toLowerCase().indexOf('590') > -1 ))
location.href = location.href.replace('http:','https:');
if(location.protocol.toLowerCase() =='https:' &&
location.href.toLowerCase().indexOf('login') == -1 &&
location.href.toLowerCase().indexOf('590') == -1)
location.href = location.href.replace('https:','http:');
</script>