<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1452295058486199832</id><updated>2012-02-17T04:22:16.624+13:00</updated><category term='WPAD'/><category term='SSL'/><category term='Applications'/><category term='Apache'/><category term='µTorrent'/><title type='text'>Beyond Integration</title><subtitle type='html'>Spending far too much time and way too much money getting technology to work just the way I want</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://beyondintegration.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1452295058486199832/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://beyondintegration.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Karl Chaffey</name><uri>http://www.blogger.com/profile/02137398799340743582</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1452295058486199832.post-6521582934546056617</id><published>2008-06-28T22:16:00.007+12:00</published><updated>2008-06-30T22:44:41.621+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPAD'/><title type='text'>WPAD: 1. Introduction</title><content type='html'>&lt;p&gt;[Place Filler]&lt;/p&gt;  &lt;p&gt;Test&lt;/p&gt; &lt;script src="http://bpw.net.nz/beyondintegration/ofc/swfobject.js" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;&lt;div id="14009004934863097dd804a6.74446424"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id="14009004934863097dd804a6.74446425"&gt;&lt;/div&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;var so = new SWFObject("http://bpw.net.nz/beyondintegration/ofc/open-flash-chart.swf", "ofc", "400", "400", "9", "#FFFFFF");so.addVariable("variables","true");so.addVariable("title","WPAD Host Requests,{font-size: 18px; color: #A0A0A0;}");so.addVariable("line","3,#87421F");so.addVariable("pie", "60,#505050,{font-size: 12px; color: #404040;");so.addVariable("values", "5849188,1525086,1452187,10977");so.addVariable("pie_labels", "58.28.159.121,wpad.school.nz,wpad.ac.nz,wpad");so.addVariable("colours", "#d01f3c,#356aa0,#C79810");so.addVariable("tool_tip", "Host: %23x_label%23&lt;br/&gt;Hits: %23val%23");so.write("14009004934863097dd804a6.74446424");&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1452295058486199832-6521582934546056617?l=beyondintegration.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beyondintegration.blogspot.com/feeds/6521582934546056617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1452295058486199832&amp;postID=6521582934546056617' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1452295058486199832/posts/default/6521582934546056617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1452295058486199832/posts/default/6521582934546056617'/><link rel='alternate' type='text/html' href='http://beyondintegration.blogspot.com/2008/06/wpad-1-introduction.html' title='WPAD: 1. Introduction'/><author><name>Karl Chaffey</name><uri>http://www.blogger.com/profile/02137398799340743582</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1452295058486199832.post-4248094775644492871</id><published>2008-06-08T23:39:00.001+12:00</published><updated>2008-06-08T23:48:45.642+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='µTorrent'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Secure µTorrent WebUI</title><content type='html'>&lt;p&gt;Ever wanted to have secure access to your &amp;#181;Torrent WebUI - here is a guide to setting up Apache to terminate an SSL connection from the wider Internet at your server, Apache then forwards your request unencrypted to your WebUI interface over localhost, then encrypting this data and sending it back.&lt;/p&gt;  &lt;p&gt;This means that your username/password and monitoring of your downloads can't be seen by someone sniffing or logging your data.&lt;/p&gt;  &lt;p&gt;This guide assumes that you already know how to setup multiple virtual hosts on SSL and you have your own self signed wildcard certificate and you can access the &amp;#181;Torrent WebUI over an unencrypted http connection, if not check out these links&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://lifehacker.com/software/hack-attack/remote-control-your-torrents-with-utorrents-webui-260393.php"&gt;Setup &amp;#181;Torrent WebUI&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://beyondintegration.blogspot.com/2008/06/self-signed-certificates-how-to-get.html"&gt;Self-Signed Certificates: How to get Cross Browser Compatibility with Wildcard Domains&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://beyondintegration.blogspot.com/2008/04/apache2-multiple-virtual-hosts-over_09.html"&gt;Apache2: Multiple Virtual Hosts over HTTPS&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The next step is to get ensure you have setup &amp;#181;Torrent correctly. Note here that we are only allowing access from localhost (127.0.0.1) so the only way to access it will be either from the server locally, or though HTTPS and Apache. Set the alternative listening port to any unused port, 8080 or 8000 would be a common choice&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/karlchaffey/SEvE4m0mwoI/AAAAAAAAAC4/AShRdpHrGZo/s1600-h/webui%5B3%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="483" alt="webui" src="http://lh4.ggpht.com/karlchaffey/SEvE5t1i8CI/AAAAAAAAAC8/oseY_gtUDro/webui_thumb%5B1%5D.jpg?imgmax=800" width="609" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now edit your&amp;#160; Apache configuration file and add in the following - Changing your server name, path to certificate/key file and the port number in the proxy pass directive. Note - DON'T change the order of the two ProxyPass directives or it won't work.&lt;/p&gt;  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: hidden; border-left: gray 1px solid; width: 97.5%; cursor: text; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;   &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;     ServerName utorrent.example.com&lt;br /&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     SSLCertificateFile conf/ssl/wildcard.crt&lt;br /&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     SSLCertificateKeyFile conf/ssl/wildcard.key&lt;br /&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     SSLEngine on&lt;br /&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;     ProxyPass /gui/ http://127.0.0.1:8000/gui/ &lt;br /&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;     ProxyPass / http://127.0.0.1:8000/gui/ &lt;br /&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt; &amp;lt;/VirtualHost&amp;gt;&lt;/pre&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1452295058486199832-4248094775644492871?l=beyondintegration.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beyondintegration.blogspot.com/feeds/4248094775644492871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1452295058486199832&amp;postID=4248094775644492871' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1452295058486199832/posts/default/4248094775644492871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1452295058486199832/posts/default/4248094775644492871'/><link rel='alternate' type='text/html' href='http://beyondintegration.blogspot.com/2008/06/secure-torrent-webui.html' title='Secure µTorrent WebUI'/><author><name>Karl Chaffey</name><uri>http://www.blogger.com/profile/02137398799340743582</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/karlchaffey/SEvE5t1i8CI/AAAAAAAAAC8/oseY_gtUDro/s72-c/webui_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1452295058486199832.post-3821244027681597513</id><published>2008-06-07T21:57:00.001+12:00</published><updated>2008-06-07T21:59:24.222+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Applications'/><title type='text'>Winsplit Revolution in Portable Apps</title><content type='html'>&lt;h4&gt;&lt;a href="http://portableapps.com/"&gt;Portable Apps&lt;/a&gt; &lt;/h4&gt;  &lt;p&gt;is a great utility that sits on your usb thumb drive, and provides access to a number of applications which you can use on a host computer by simply plugging in your drive, it then pops up a menu in your taskbar&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://lh6.ggpht.com/karlchaffey/SEpbjvORzCI/AAAAAAAAACg/ogB5CVdL-MQ/s1600-h/image%5B30%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="244" alt="image" src="http://lh5.ggpht.com/karlchaffey/SEpbkYt1gwI/AAAAAAAAACk/vw6m9zX5jLM/image_thumb%5B26%5D.png?imgmax=800" width="175" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;hr /&gt;  &lt;h4&gt;&lt;a href="http://www.winsplit-revolution.com/"&gt;Winsplit Revolution&lt;/a&gt; &lt;/h4&gt;  &lt;p&gt;is also a great utility which allows you to move windows around your screen, perfect for large screens and multi-screen setups. For instance Ctrl-Alt-Numpad 7 will send the currently selected window in the top left corner of your screen, similarly Ctrl-Alt-Numpad 6 will send it to the entire right half of the screen. It makes sense if you look at you numpad as a map of your screen&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://lh4.ggpht.com/karlchaffey/SEpbk0fC6hI/AAAAAAAAACo/oSbfl_CTdDA/s1600-h/image%5B29%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="205" alt="image" src="http://lh3.ggpht.com/karlchaffey/SEpbl_5RVZI/AAAAAAAAACs/0e8V4qtXJ2k/image_thumb%5B25%5D.png?imgmax=800" width="260" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;hr /&gt;  &lt;h4&gt;Combine the two!&lt;/h4&gt;  &lt;p&gt;As of 04 June 2008 Winsplit Revolution now comes in a portable install mode - meaning that all files are stored on your usb drive, however they mention no integration with Portable Apps. By selecting the portable mode in the Winsplit installer and carefully choosing the path of install to be &amp;quot;X:\Portable Apps\Winsplit&amp;quot; where is the drive letter of your usb drive with Portable Apps already installed then voila - we now have Winsplit in the Portable Apps menu on your taskbar&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/karlchaffey/SEpbmawYfyI/AAAAAAAAACw/R8gNTJXnq1g/s1600-h/Winsplit%5B16%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="634" alt="Winsplit" src="http://lh6.ggpht.com/karlchaffey/SEpbmysonHI/AAAAAAAAAC0/bvwOD9Ucnm0/Winsplit_thumb%5B14%5D.jpg?imgmax=800" width="435" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1452295058486199832-3821244027681597513?l=beyondintegration.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beyondintegration.blogspot.com/feeds/3821244027681597513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1452295058486199832&amp;postID=3821244027681597513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1452295058486199832/posts/default/3821244027681597513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1452295058486199832/posts/default/3821244027681597513'/><link rel='alternate' type='text/html' href='http://beyondintegration.blogspot.com/2008/06/winsplit-revolution-in-portable-apps.html' title='Winsplit Revolution in Portable Apps'/><author><name>Karl Chaffey</name><uri>http://www.blogger.com/profile/02137398799340743582</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/karlchaffey/SEpbkYt1gwI/AAAAAAAAACk/vw6m9zX5jLM/s72-c/image_thumb%5B26%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1452295058486199832.post-4324807113408724962</id><published>2008-06-07T14:37:00.001+12:00</published><updated>2008-06-08T23:47:08.393+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Self-Signed Certificates: How to get Cross Browser Compatibility with Wildcard Domains</title><content type='html'>&lt;h4&gt;Introduction&lt;/h4&gt;  &lt;p&gt;A self-signed SSL certificate is a convenient&amp;#160; way to encrypt data between your own web server and web requests you make to it over the wider Internet. If you own multiple domains or run multiple sub domains, say as virtual hosts in Apache then creating a certificate that won't cause errors on Firefox, Opera and Internet Explorer 5,6 and 7 is non trivial, there are a few tricks which are only tucked away on some remote message boards - so I have summarized them here.&lt;/p&gt;  &lt;p&gt;Creating a self-signed certificate for a single domain name is simple and covered in multiple places with easy to follow guides such as at&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://sial.org/howto/openssl/self-signed/" href="http://sial.org/howto/openssl/self-signed/"&gt;http://sial.org/howto/openssl/self-signed/&lt;/a&gt;, &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.akadia.com/services/ssh_test_certificate.html" href="http://www.akadia.com/services/ssh_test_certificate.html"&gt;http://www.akadia.com/services/ssh_test_certificate.html&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://blog.taragana.com/index.php/archive/openssl-how-to-create-self-signed-certificate/" href="http://blog.taragana.com/index.php/archive/openssl-how-to-create-self-signed-certificate/"&gt;http://blog.taragana.com/index.php/archive/openssl-how-to-create-self-signed-certificate/&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Wildcard certificate guides are a little rarer, however the one that this tutorial is based upon is below&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://www.heebs.ch/computer/notes/wildcardcert" href="http://www.heebs.ch/computer/notes/wildcardcert"&gt;http://www.heebs.ch/computer/notes/wildcardcert&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The above guide is essentially no more difficult than simply using * for the common name of your server when you come to generate the certificate, there are a number of problems with this simplistic approach when it comes to supporting multiple domains and subdomains on the same I.P addresses. As we must present the certificate BEFORE we can accept traffic there is no way for us to know which domain has been requested - thus all domains must be supplied with the same certificate.&lt;/p&gt;  &lt;hr /&gt;&lt;/hr&gt;  &lt;h4&gt;The Problem&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;I.E 5 and Firefox (tested on 2.*) don't fully follow the relevant RFC - they will match the wildcard * to any domain or subdomain, for instance the list below would all match a wildcard cert issued with the common name *      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://example.com"&gt;http://example.com&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://site1.example.com"&gt;http://site1.example.com&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://abcdef.net"&gt;http://abcdef.net&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;I.E 6 and IE 7 however follow the guidelines to the rules - these specify that a wildcard can only match one level of subdomains, so with the same common name as the previous example we get      &lt;ol&gt;       &lt;li&gt;&lt;a href="http://example.com"&gt;http://example.com&lt;/a&gt; - Match &lt;/li&gt;        &lt;li&gt;&lt;a href="http://abcdef.net"&gt;http://abcdef.net&lt;/a&gt; - Match &lt;/li&gt;        &lt;li&gt;&lt;a href="http://site1.example.com"&gt;http://site1.example.com&lt;/a&gt; - The dreaded certificate error problem &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/karlchaffey/SEoe3Hz01dI/AAAAAAAAABw/MMUsxj7zbyY/s1600-h/CertError%5B11%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="321" alt="CertError" src="http://lh6.ggpht.com/karlchaffey/SEn0dpayIlI/AAAAAAAAAB0/HotWquIxPz4/CertError_thumb%5B7%5D.jpg?imgmax=800" width="671" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;hr /&gt;&lt;/hr&gt;  &lt;h4&gt;The Solution&lt;/h4&gt;  &lt;p&gt;There are some custom fields in a certificate where you can specify other sites where the certificate is valid - known as &amp;quot;Certificate Subject Alt Name&amp;quot;, thankfully we specify as many domain names that we want in here - but even better this field also supports wildcarding.&lt;/p&gt;  &lt;p&gt;Initially only created one entry in this extra field - the entry I needed for a Vista Sidebar tool to connect which required a valid certificate, this however then broke compatibility with Firefox for all my other domains. It turns out that if this field is present Firefox then ignores the usual Common Name attribute which I had left as *.&lt;/p&gt;  &lt;p&gt;There is however a resolution to allow all browsers to co-exist in a peaceful world. Simply put we can combine the best of both worlds into the Certificate Subject Name. Starting off with creating a Certificate Authority we essentially follow &lt;a href="http://www.heebs.ch/computer/notes/wildcardcert" target="_blank"&gt;heeb's guide&lt;/a&gt;, but I have added a few steps in at the start and end&lt;/p&gt;  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: hidden; border-left: gray 1px solid; width: 97.5%; cursor: text; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;   &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;#We need to set the subjectAltName, It appears that this can't be set at the command prompt.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; nano /usr/ssl/openssl.cnf&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #008000"&gt;#Scroll down to the [ usr_cert ] section and alter, uncomment or add in a comma separated list &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #008000"&gt;#of all the domains, sub domains and wildcard matches you want in the form&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; subjectAltName=DNS:*,DNS:*.example1.com,DNS:*.example2.com,DNS:12.34.56.78&lt;br /&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt; &lt;span style="color: #008000"&gt;#Create temporary directories&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt; mkdir -p demoCA/{certs,crl,newcerts,private&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt; echo 01 &amp;gt; demoCA/serial&lt;br /&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt; touch demoCA/index.txt&lt;br /&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt; &lt;span style="color: #008000"&gt;#Create a new root authority.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt; &lt;span style="color: #008000"&gt;#You will want to miss out this step if you ever create more certificates, &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt; &lt;span style="color: #008000"&gt;#as you will want to reuse the old authority&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt; openssl req -new -x509 -keyout demoCA/private/cakey.pem -out demoCA/cacert.pem -days 3652&lt;br /&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt; &lt;span style="color: #008000"&gt;#Create a signing request &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt; &lt;span style="color: #008000"&gt;#I don't think it matter any more what we use as common name, but use * here to be safe&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt; openssl req -new -keyout ./wildcard.req -out ./wildcard.req -days 3652&lt;br /&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt; &lt;span style="color: #008000"&gt;#Sign the request&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;  23:&lt;/span&gt; openssl ca -policy policy_anything -out wildcard.crt -infiles wildcard.req&lt;br /&gt;&lt;span style="color: #606060"&gt;  24:&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #606060"&gt;  25:&lt;/span&gt; &lt;span style="color: #008000"&gt;#Extract the key for Apache, it is used for encrypting/decryptind the data&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;  26:&lt;/span&gt; openssl rsa &amp;lt;&amp;gt; wildcard.key&lt;br /&gt;&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;  28:&lt;/span&gt; &lt;span style="color: #008000"&gt;#Copy the file demoCA/cacert.pem into the root of all your web sites&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;  29:&lt;/span&gt; &lt;span style="color: #008000"&gt;#Name it with the extension .crt, for example.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;  30:&lt;/span&gt; cp demoCA/cacert.pem /path/to/website/wildcard.crt&lt;/pre&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;hr /&gt;&lt;h4&gt;Final Thoughts&lt;/h4&gt;&lt;br /&gt;Now simply browse to your website over http and open the file wildcard.crt that we just created &lt;a href="http://example.com/wildcard.crt"&gt;http://example.com/wildcard.crt&lt;/a&gt;. When prompted to save you want to do this into the &amp;quot;Trusted Root&amp;quot; or similar folder. See below for screenshots of this process in IE and Firefox.&lt;br /&gt;&lt;br /&gt;Note that although the steps above assume you are running Linux with Apache, there is nothing stopping you from doing this in Windows XP by using&amp;#160; &lt;a href="http://www.cygwin.com/" target="_blank"&gt;Cygwin&lt;/a&gt; and importing the certificate into IIS.&amp;#160; In fact I made this guide using Cygwin on Windows XP and imported the certificates into &lt;a href="http://www.collab.net/downloads/subversion/" target="_blank"&gt;Collabnet Subversion Server&lt;/a&gt; which is a full Apache server for Windows XP with built in svn support wrapped up in a simple installer.&lt;br /&gt;&lt;br /&gt;The Final step is to setup multiple virtual directories in either IIS or Apache and tell them to use the key we just created, a guide for Apache can be found in my next blog post &lt;a href="http://beyondintegration.blogspot.com/2008/04/apache2-multiple-virtual-hosts-over_09.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;h4&gt;Installing a new Trusted Root in Internet Explorer&lt;/h4&gt;&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/karlchaffey/SEn0eCrMuXI/AAAAAAAAAB4/tnVg-pBpbOQ/s1600-h/Add%20Root%20CA%20-%20Explorer%203%5B7%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="453" alt="Add Root CA - Explorer 3" src="http://lh3.ggpht.com/karlchaffey/SEn0e-Y6wHI/AAAAAAAAAB8/sTRafjBalHA/Add%20Root%20CA%20-%20Explorer%203_thumb%5B5%5D.jpg?imgmax=800" width="990" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;h4&gt;Installing a new Trusted Root in Firefox&lt;/h4&gt;&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/karlchaffey/SEn0fby9oPI/AAAAAAAAACA/xzaoDRDN1Ek/s1600-h/Add%20Root%20CA%20-%20Firefox%5B5%5D.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="335" alt="Add Root CA - Firefox" src="http://lh4.ggpht.com/karlchaffey/SEn0gFdCYUI/AAAAAAAAACE/-tOLhNwRS_U/Add%20Root%20CA%20-%20Firefox_thumb%5B3%5D.jpg?imgmax=800" width="579" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1452295058486199832-4324807113408724962?l=beyondintegration.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beyondintegration.blogspot.com/feeds/4324807113408724962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1452295058486199832&amp;postID=4324807113408724962' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1452295058486199832/posts/default/4324807113408724962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1452295058486199832/posts/default/4324807113408724962'/><link rel='alternate' type='text/html' href='http://beyondintegration.blogspot.com/2008/06/self-signed-certificates-how-to-get.html' title='Self-Signed Certificates: How to get Cross Browser Compatibility with Wildcard Domains'/><author><name>Karl Chaffey</name><uri>http://www.blogger.com/profile/02137398799340743582</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/karlchaffey/SEn0dpayIlI/AAAAAAAAAB0/HotWquIxPz4/s72-c/CertError_thumb%5B7%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1452295058486199832.post-8397819409873681200</id><published>2008-04-09T18:22:00.002+12:00</published><updated>2008-06-07T21:01:17.468+12:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Apache2: Multiple Virtual Hosts over HTTPS</title><content type='html'>&lt;p&gt;Ever wanted to run multiple virtual hosts on your Apache installations under SSL, but you only have one I.P address to bind to? There are three main steps&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Create your own signing authority and a self signed certificate (If you haven't got one of these yet see &lt;a href="http://beyondintegration.blogspot.com/2008/06/self-signed-certificates-how-to-get.html"&gt;here&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;Change your Apache configuration file &lt;/li&gt;    &lt;li&gt;Restart Apache &lt;/li&gt; &lt;/ol&gt;  &lt;h4&gt;Change Apache Configuration&lt;/h4&gt;  &lt;p&gt;A summary from &lt;a href="http://www.onlamp.com/pub/a/apache/2005/02/17/apacheckbk.html"&gt;&lt;i&gt;Rich Bowen&lt;/i&gt;&lt;/a&gt;     &lt;br /&gt;Copy the two files wilcard.crt and wildcard.key into a subdirectory of your Apache install, for instance I usually use the dir conf/ssl/. Now edit your config file to look similar to this, the two cert/keys &lt;strong&gt;MUST&lt;/strong&gt; be the same. You also need to ensure that Listen 443 is defined somewhere in the file&lt;/p&gt;  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;   &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: hidden; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; NameVirtualHost *:443&lt;br /&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;     ServerName foo1.bar.com&lt;br /&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     DocumentRoot /www/foo1/&lt;br /&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     SSLEngine on&lt;br /&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     SSLCertificateFile conf/ssl/wildcard.crt&lt;br /&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     SSLCertificateKeyFile conf/ssl/wildcard.key&lt;br /&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt; &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt; &amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;     ServerName foo2.bar.com&lt;br /&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;     DocumentRoot /www/foo2/&lt;br /&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;     SSLEngine on&lt;br /&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;     SSLCertificateFile conf/ssl/wildcard.crt&lt;br /&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;     SSLCertificateKeyFile conf/ssl/wildcard.key&lt;br /&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt; &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;As a side note the first virtual host is the default one if you get an unmatched domain name, so foo3.bar.com would get served as if it was foo1.bar.com.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1452295058486199832-8397819409873681200?l=beyondintegration.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beyondintegration.blogspot.com/feeds/8397819409873681200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1452295058486199832&amp;postID=8397819409873681200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1452295058486199832/posts/default/8397819409873681200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1452295058486199832/posts/default/8397819409873681200'/><link rel='alternate' type='text/html' href='http://beyondintegration.blogspot.com/2008/04/apache2-multiple-virtual-hosts-over_09.html' title='Apache2: Multiple Virtual Hosts over HTTPS'/><author><name>Karl Chaffey</name><uri>http://www.blogger.com/profile/02137398799340743582</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
