<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Gavin Adams Information Blog &#187; Tech Tips</title>
	<atom:link href="http://www.gavinadams.org/blog/category/tech-tips/feed" rel="self" type="application/rss+xml" />
	<link>http://www.gavinadams.org/blog</link>
	<description>Musings on hobbies, technology and topics of interest</description>
	<lastBuildDate>Fri, 23 Jul 2010 19:41:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Best Presentation of XenDesktop 4 on Windows</title>
		<link>http://www.gavinadams.org/blog/2010/07/23/best-presentation-of-xendesktop-4-to-windows</link>
		<comments>http://www.gavinadams.org/blog/2010/07/23/best-presentation-of-xendesktop-4-to-windows#comments</comments>
		<pubDate>Fri, 23 Jul 2010 19:40:01 +0000</pubDate>
		<dc:creator>me@gavinadams.org</dc:creator>
				<category><![CDATA[XenDesktop]]></category>
		<category><![CDATA[Citrix]]></category>

		<guid isPermaLink="false">http://www.gavinadams.org/blog/?p=214</guid>
		<description><![CDATA[<p>XenDesktop 4 has raised the bar for virtual desktop (VDI) solutions. It&#8217;s now easier to provide a virtual desktop to users on differing operation systems and platforms. And having Citrix on the iPhone / iPad is just amazing eye candy too.</p> <p>By default, all the tutorials for installing XenDesktop use the defaults. This means [...]]]></description>
			<content:encoded><![CDATA[<p>XenDesktop 4 has raised the bar for virtual desktop (VDI) solutions. It&#8217;s now easier to provide a virtual desktop to users on differing operation systems and platforms. And having Citrix on the iPhone / iPad is just amazing eye candy too.</p>
<p>By default, all the tutorials for installing XenDesktop use the defaults. This means that under Windows, using a browser to connect and launch a session from web interface uses the online plug-in module. It works, provides multi-monitor capability, but has display artifacts and no nifty bar to manage USB connection and such. Besides this client, the Desktop Viewer can also be used as the default (if installed).</p>
<p><span id="more-214"></span></p>
<p>With the 11.x and 12.0 clients it&#8217;s easy to change. First install the <strong>Citrix Online plug-in</strong> (not the Citrix Online plugin &#8211; web which is smaller and doesn&#8217;t include the Desktop client) from <a href="http://www.citrix.com/English/ss/downloads/details.asp?downloadId=1863803&amp;productId=186&amp;c1=sot2755">here</a>.</p>
<p>From the web interface server that services XenDesktop, browse to the conf directory and edit webinterface.conf. For example, /Citrix/WebDesktop2 is located here:</p>
<p><a href="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/wiconfdir.png"><img class="alignnone size-full wp-image-217" title="wiconfdir" src="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/wiconfdir.png" alt="" width="426" height="387" /></a></p>
<p>Edit the file and search for ShowDesktopViewer and change the line from:</p>
<pre># ShowDesktopViewer=Off</pre>
<p>to the following:</p>
<pre>ShowDesktopViewer=On</pre>
<p>Next time a session is launched, the Desktop Viewer will be used instead of the online plugin. This doesn&#8217;t work under OS X as there really isn&#8217;t a better client than Desktop Viewer yet. Thanks to <a href="http://www.parmiter.com/citrix/citrix-web-interface/2010/01/RP628">Richard Parmiter</a> for documenting this!</p>
<p><em>Hint</em>: To get mult-monitor under Desktop Viewer, re-size to something less than full screen, move the window over the two monitors and re-size to full screen. This setting will persist across sessions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gavinadams.org/blog/2010/07/23/best-presentation-of-xendesktop-4-to-windows/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ESXi 4.1 and the 9000 Byte MTU (on vmk0)</title>
		<link>http://www.gavinadams.org/blog/2010/07/19/esxi-41-and-the-9000-byte-mtu-on-vmk0</link>
		<comments>http://www.gavinadams.org/blog/2010/07/19/esxi-41-and-the-9000-byte-mtu-on-vmk0#comments</comments>
		<pubDate>Mon, 19 Jul 2010 19:04:54 +0000</pubDate>
		<dc:creator>me@gavinadams.org</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[ESXi]]></category>
		<category><![CDATA[jumbo frames]]></category>
		<category><![CDATA[vSphere]]></category>

		<guid isPermaLink="false">http://www.gavinadams.org/blog/?p=190</guid>
		<description><![CDATA[<p>Recently I did a &#8220;few&#8221; upgrades to the home lab. Besides an upgrade to enhance shared storage for vSphere (my old NAS was at 502 days uptime), I took the opportunity to enable jumbo packets on my Dell PowerConnect 5324 and the new fire-and-forget Thecus N7700PRO NAS. As the basis for new lab infrastructure [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I did a &#8220;few&#8221; upgrades to the home lab. Besides an upgrade to enhance shared storage for vSphere (my old NAS was at 502 days uptime), I took the opportunity to enable jumbo packets on my <a href="http://www.dell.com/us/en/gen/networking/pwcnt_5324/pd.aspx?refid=pwcnt_5324&amp;s=gen">Dell PowerConnect 5324</a> and the new fire-and-forget <a href="http://www.amazon.com/gp/product/B002RW0A0E?ie=UTF8&amp;tag=gavada-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B002RW0A0E">Thecus N7700PRO</a> NAS. As the basis for new lab infrastructure to test VMware, Hyper-V and Xen, it&#8217;s a good improvement.</p>
<p>Since the first use was to test some of the new features of vSphere / vCenter 4.1, I also took the opportunity to change over to ESXi from ESX. According to VMware, 4.1 is the last release of ESX, so time to get cracking with ESXi, vMA, and the differences in managing the hosts.</p>
<p>I wanted to take advantage of jumbo frames on my ESXi systems. However, I didn&#8217;t decide this until I&#8217;d already installed the hosts (and didn&#8217;t see an advanced option to set the management interface MTU).</p>
<p><span id="more-190"></span></p>
<h1>The Problem</h1>
<p>I couldn&#8217;t provision my NAS storage into a different VLAN / physical network, which would be best practices for storage for the ESXi hosts. And I didn&#8217;t realize that with ESXi there is no way to set tell the hypervisor which port group / vmk to use for NFS access. It&#8217;s based on the configured network of the NAS device or based on the lowest numbered vmk of the machine. And since vmk0, Management Network, is created by default with an MTU of 1500 bytes, getting that to 9000 bytes is a problem.</p>
<h1>The Solution</h1>
<p>So what we&#8217;re going to do is use two vmk&#8217;s to set each to an MTU of 9000 while in maintenance mode. We&#8217;ll also change the port group names to reflect the one that deals with vMotion.</p>
<h1>Prerequisites</h1>
<p>So we have a cluster of hosts with multiple vmnics, but with managment, vMotion and storage all in the same network. The host we are going to change is in the following environment:</p>
<ol>
<li>Switch and NFS storage both configured for jumbo frames and an MTU of 9000 bytes</li>
<li>vMA4.0.0 (or 4.1 &#8212; I&#8217;m using 4.0 for ghettovcbg2 compatibility) and vCenter 4.1 on installed dedicated systems (or one not affected by the host we are converting)</li>
<li>ESXi 4.1 configured with default MTU (1500 bytes) managed by vCenter</li>
<li>VLAN is the management and storage network, VMware hosts are trunked to the the switch</li>
<li>Ability to migrate guests to other cluster members</li>
<li>Full permissions to the vSphere</li>
<li>Working knowledge of making changes to networking and storage</li>
</ol>
<h1>The Process</h1>
<h2>Prep the ESXi Host</h2>
<p>Our host, esx03.peanuts.local has two IP addresses, 172.16.200.90 assigned to vmk0 and 172.16.200.91 assigned to vmk1. Do the following to get the host ready:</p>
<ul>
<li>Migrate all running VM&#8217;s to other hosts</li>
<li>Migrate powered down VM&#8217;s to another host</li>
<li>Place the host into maintenance mode</li>
<li>Optional &#8211; You may wish to disable HA. I found that the various connectivity changes forced HA scans that caused alerts to rise. No issues, but beware.</li>
</ul>
<p>At this point we can do almost anything we wish to the host without affecting the rest of the environment.</p>
<h2>Remove vmk1</h2>
<p>At the start, vSwitch0 looks like this:</p>
<p><a href="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/vSwitch-before-changes.png"><img class="alignnone size-full wp-image-205" title="vSwitch before changes" src="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/vSwitch-before-changes.png" alt="" width="431" height="357" /></a></p>
<p>Edit the properties of the switch and remove the port group <strong>VMKernel Primary</strong>. At this point, there will be a single vmkernel, vmk0, that we&#8217;ll use to connect via the vMA.</p>
<p><a href="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/vmkernel-removed.png"><img class="alignnone size-full wp-image-204" title="vmkernel removed" src="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/vmkernel-removed.png" alt="" width="432" height="321" /></a></p>
<h2>Connect to the host via vMA</h2>
<p>Login as the vi-admin and add the host via the IP address of vmk0, and connect. You will need the root account password for the ESXi box.</p>
<pre>[vi-admin@vma ~]$ <strong>sudo vifp addserver 172.16.200.90</strong>
root@esx03.peanuts.local's password:
[vi-admin@vma ~]$ <strong>vifpinit 172.16.200.90
</strong></pre>
<h2>Convert vSwitch0 to Support Jumbo Frames</h2>
<p>After connecting, modify the switch and verify the settings. Note, this may cause a connectivity outage. For one host, it took 30-40 seconds to complete the command.</p>
<pre>[vi-admin@vma ~][172.16.200.90]$ <strong>esxcfg-vswitch -m 9000 vSwitch0</strong>
[vi-admin@vma ~][172.16.200.90]$ <strong>esxcfg-vswitch -l</strong>
Switch Name     Num Ports       Used Ports      Configured Ports    <span style="color: #993300;"><strong>MTU</strong></span>     Uplinks
vSwitch0        128             5               128                 <span style="color: #993300;"><strong>9000</strong></span>    vmnic2,vmnic1,vmnic0

   PortGroup Name                VLAN ID   Used Ports      Uplinks
   ISP - Comcast                 502       0               vmnic2,vmnic1,vmnic0
   Development LAN               30        0               vmnic2,vmnic1,vmnic0
   VM Network                    10        0               vmnic2,vmnic1,vmnic0
   Management Network            10        1               vmnic0,vmnic1,vmnic2</pre>
<p>Look to ensure this the vSwitch shows 9000 under MTU.</p>
<h2>Create the New vmk1</h2>
<p>Create a new port group and assign it to the proper VLAN. I used a name that would be more specific to the purpose once we&#8217;re done (vMotion).</p>
<pre>[vi-admin@vma ~][172.16.200.90]$ <strong>esxcfg-vmknic -a -i 172.16.200.91 -n 255.255.255.0 -m 9000 "vMotion"</strong>
Added the VMkernel NIC successfully
[vi-admin@vma ~][172.16.200.90]$ <strong>esxcfg-vmknic -l</strong>
Interface  Port Group/DVPort             IP Family IP Address                        Netmask           <span style="color: #993300;"><strong>MTU</strong></span>     Type
vmk0       Management Network            IPv4      172.16.200.90                     255.255.255.0     <span style="color: #000000;">1500</span>    STATIC
vmk0       Management Network            IPv6      fe80::21b:21ff:fe0f:82b           64                1500    STATIC
vmk1       vMotion                       IPv4      172.16.200.91                     255.255.255.0     <span style="color: #993300;"><strong>9000</strong></span>    STATIC
vmk1       vMotion                       IPv6      fe80::250:56ff:fe77:3517          64                <span style="color: #993300;"><strong>9000</strong></span>    STATIC</pre>
<p>Verify that vmk1 has 9000 for the MTU (I removed the MAC address field so it would show here). Note that vmk0, how we&#8217;re connected and where NFS traffic transits, is still at 1500 bytes. Not for long!</p>
<h2>Remove vmk0</h2>
<p>Prior to removing vmk0, use the GUI to enabled Management traffic on the new vmk1 (vMotion), then select OK:</p>
<p><a href="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/vmk1-mgmt.png"><img class="alignnone size-full wp-image-202" title="vmk1-mgmt" src="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/vmk1-mgmt.png" alt="" width="536" height="663" /></a></p>
<p>At the vSwitch0 properties page, select and Remove the Management Network port group (vmk0):</p>
<p><a href="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/remove-vmk0.png"><img class="alignnone size-full wp-image-200" title="remove-vmk0" src="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/remove-vmk0.png" alt="" width="293" height="469" /></a></p>
<p>Note: when you hit Remove and confirm, connectivity to the host will be lost until the next step. What this does is starts the process of removing the vmkernel. However, since removal of that breaks connectivity, the actual removal of the port group doesn&#8217;t take place. At least it didn&#8217;t for me.</p>
<h2>Create New vmk0</h2>
<p>From the vMA, forcibly remove the host by IP address (vmk0&#8242;s), then add the host via the vmk1 IP address. Verify that the vSwitch has the port group <strong>Management Network </strong>still there and assigned to VLAN 10:</p>
<pre>[vi-admin@vma ~][172.16.200.90]$ <strong>sudo vifp removeserver 172.16.200.90 --force</strong>
root@172.16.200.90's password:
[vi-admin@vma ~][172.16.200.90]$ <strong>sudo vifp addserver 172.16.200.91</strong>
root@esx03-vmk.peanuts.local's password:
[vi-admin@vma ~][172.16.200.90]$ <strong>vifpinit 172.16.200.91</strong>
[vi-admin@vma ~][172.16.200.91]$<strong> esxcfg-vswitch -l</strong>
Switch Name     Num Ports       Used Ports      Configured Ports    MTU     Uplinks
vSwitch0        128             5               128                 9000    vmnic2,vmnic1,vmnic0

   PortGroup Name                VLAN ID   Used Ports      Uplinks
   VM Network                    10        0               vmnic2,vmnic1,vmnic0
   ISP - Comcast                 502       0               vmnic2,vmnic1,vmnic0
   Development LAN               30        0               vmnic2,vmnic1,vmnic0
   vMotion                       10        1               vmnic2,vmnic1,vmnic0
   <span style="color: #993300;"><strong>Management Network</strong></span>            <span style="color: #993300;"><strong>10</strong></span>        0               vmnic0,vmnic1,vmnic2</pre>
<p>If the port gorup isn&#8217;t there, use the steps above to create the port group and assign it to the VLAN. Now create the new vmk0 with jumbo frames and verify both vmk&#8217;s are correctly made:</p>
<pre>[vi-admin@vma ~][172.16.200.91]$<strong> esxcfg-vmknic -a -i 172.16.200.90 -n 255.255.255.0 -m 9000 "Management Network"</strong>
Added the VMkernel NIC successfully
[vi-admin@vma ~][172.16.200.91]$ <strong>esxcfg-vmknic -l</strong>
Interface  Port Group/DVPort             IP Family IP Address                        Netmask           MAC Address       <span style="color: #993300;"><strong>MTU</strong></span>     Type
vmk1       vMotion                       IPv4      172.16.200.91                     255.255.255.0     00:50:56:77:35:17 <span style="color: #993300;"><strong>9000</strong></span>    STATIC
vmk1       vMotion                       IPv6      fe80::250:56ff:fe77:3517          64                00:50:56:77:35:17 <span style="color: #993300;"><strong>9000</strong></span>    STATIC
vmk0       Management Network            IPv4      172.16.200.90                     255.255.255.0     00:50:56:71:f8:b6 <span style="color: #993300;"><strong>9000</strong></span>    STATIC
vmk0       Management Network            IPv6      fe80::250:56ff:fe71:f8b6          64                00:50:56:71:f8:b6 <span style="color: #993300;"><strong>9000</strong></span>    STATIC</pre>
<p>You can see that the MTU is correct for both vmk&#8217;s (scroll over, I  left the MAC address in this time).  At this point, vCenter will see the host.</p>
<h2>Final Restart</h2>
<p>One last reboot of the host will ensure everything is in proper order. I do this from vCenter once the host is reachable:</p>
<p><a href="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/reboot.png"><img class="alignnone size-full wp-image-199" title="reboot" src="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/reboot.png" alt="" width="297" height="408" /></a></p>
<p>After the host comes back up in vCenter, we&#8217;ll clean up the networking config and storage.</p>
<h2>Reassign Services to Proper vmk&#8217;s</h2>
<p>Go into the vSwitch0 properties and set the port properties for each vmkernel:</p>
<p><a href="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/vmk0-props.png"><img class="alignnone size-full wp-image-201" title="vmk0-props" src="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/vmk0-props.png" alt="" width="470" height="210" /></a></p>
<p><strong>Management Network </strong>- vmk0 &#8211; <em>Management traffic </em>- managed via vCenter / vMA, and as lowest vmk, used by NFS for storage on the same subnet.</p>
<p><a href="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/vmk1-props.png"><img class="alignnone size-full wp-image-203" title="vmk1-props" src="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/vmk1-props.png" alt="" width="438" height="196" /></a></p>
<p><strong>vMotion </strong>- vmk1 &#8211; <em>vMotion and FT</em> (fault tolerance logging). Deselect <em>Management traffic</em>.</p>
<p>When you select OK, this will finalize the port group settings.</p>
<h2>Clean Up</h2>
<p>At this point, all NFS traffic (actually any traffic) can now use jumbo frames. I&#8217;d go over to Storage and refresh to make sure the store populates as expected. Finally, we&#8217;ll clear out the host entry in the vMA and add using the FQDN (a topic for another posting!):</p>
<pre>[vi-admin@vma ~][172.16.200.91]$ <strong>sudo vifp removeserver 172.16.200.91</strong>
root@172.16.200.91's password:
[vi-admin@vma ~][172.16.200.91]$ <strong>sudo vifp addserver esx03.peanuts.local</strong>
root@esx03.peanuts.local's password:
[vi-admin@vma ~][172.16.200.91]$ <strong>vifpinit esx03</strong>
[vi-admin@vma ~][esx03]$<strong> esxcfg-vmknic -l</strong>
Interface  Port Group/DVPort             IP Family IP Address                        Netmask           MAC Address       MTU     Type
vmk0       Management Network            IPv4      172.16.200.90                     255.255.255.0     00:50:56:71:f8:b6 9000    STATIC
vmk0       Management Network            IPv6      fe80::250:56ff:fe71:f8b6          64                00:50:56:71:f8:b6 9000    STATIC
vmk1       vMotion                       IPv4      172.16.200.91                     255.255.255.0     00:50:56:77:35:17 9000    STATIC
vmk1       vMotion                       IPv6      fe80::250:56ff:fe77:3517          64                00:50:56:77:35:17 9000    STATIC</pre>
<p>And the server is now reachable via the FQDN and the vmk&#8217;s appear in proper order. If you have the ability, perform a <strong>netstat -na</strong> on the NAS to verify connections are coming from the vmk0 address.</p>
<h2>Problems and Resolution</h2>
<p>I&#8217;ll update the post with corrections, but with different configurations, we may run into different issues.</p>
<table border="0">
<caption><span style="font-size: large;"><strong>Observed Problems and Resolutions</strong></span></caption>
<tbody>
<tr>
<td style="text-align: center;">Problem</td>
<td style="text-align: center;">Resolution</td>
</tr>
<tr>
<td>NAS shows connections from both vmk0 and vmk1 addresses</td>
<td>This may require one final reboot to clear. The reboot completed after creating vmk0 still had vmk1 as designated for management traffic. Those connections may live until no longer used or another reboot. This should only be an issue if NFS permissions are set to specific IP addresses.</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.gavinadams.org/blog/2010/07/19/esxi-41-and-the-9000-byte-mtu-on-vmk0/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Replacing vCenter 4.1 SSL Certificate with Active Directory Issued One</title>
		<link>http://www.gavinadams.org/blog/2010/07/14/replacing-vcenter-4-1-ssl-certificate-with-active-directory-issued-one</link>
		<comments>http://www.gavinadams.org/blog/2010/07/14/replacing-vcenter-4-1-ssl-certificate-with-active-directory-issued-one#comments</comments>
		<pubDate>Wed, 14 Jul 2010 18:02:36 +0000</pubDate>
		<dc:creator>me@gavinadams.org</dc:creator>
				<category><![CDATA[PKI / Certificates]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[vCenter]]></category>
		<category><![CDATA[vSphere]]></category>

		<guid isPermaLink="false">http://www.gavinadams.org/blog/?p=170</guid>
		<description><![CDATA[<p>This is an update post to reflect the differences in vCenter 4.1 vs the older vCenter 25 install. The older post can be found here.</p> <p>Certain third party products such as XenDesktop respect the expiration date on the vCenter SSL certificate. The vSphere Client doesn’t mind so much, nor it appears do the vSphere [...]]]></description>
			<content:encoded><![CDATA[<p>This is an update post to reflect the differences in vCenter 4.1 vs the older vCenter 25 install. The older post can be found <a href="http://www.gavinadams.org/blog/2010/04/16/replacing-vicenter-2-5-self-signed-certificate-with-active-directory-issued-one">here</a>.</p>
<p>Certain third party products such as XenDesktop respect the expiration date on the vCenter SSL certificate. The vSphere Client doesn’t mind so much, nor it appears do the vSphere (ESX/ESXi &#8212; err vSphere Hypervisor) hosts, but when your VDIs suddenly can’t be reached, it’s a bad thing. I&#8217;m sure other products may have the same issue.</p>
<p>By default, vCenter will create a self-signed certificate issued to &#8220;<em>VMware default certificate</em>&#8220;. Unlike previous vCenter installs, the certificate is valid for 10 years, but still can cause problems for third parties that want to see the proper common name (e.g., FQDN of the vCenter server).</p>
<p><a href="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/vmware-def-cert.png"><img class="alignnone size-full wp-image-177" title="VMware Default Certificate" src="http://www.gavinadams.org/blog/wp-content/uploads/2010/07/vmware-def-cert.png" alt="" width="402" height="506" /></a></p>
<p>In our case, since we’re not publishing any SSL services to the public and already have a Microsoft Certificate Authority, we can create and sign our own vCenter certificate. And just like the newer version of vCenter, we’ll set it up for 10 years too.</p>
<p>This can be completed in just under 15 minutes if all the prerequisites are in place. Took me an hour (including this documentation).</p>
<p><span id="more-170"></span></p>
<h2>Environment Summary</h2>
<p>For this process to work, the following assumptions are made:</p>
<ul>
<li>Active Directory installed and Certificate Authority installed (in my case, it’s on a Windows 2008 Domain Controller with Certificate Authority and Certificate Authority Web Enrollment )</li>
<li>DNS used for vCenter and internal FQDN name</li>
<li>vCenter server part of the domain, Domain Admin access to it</li>
<li>vCenter installed with local database (SQL Server 2005 Express) and using SYSTEM account &#8211; People commented on my <a href="http://www.gavinadams.org/blog/2010/04/16/replacing-vicenter-2-5-self-signed-certificate-with-active-directory-issued-one">previous related post</a> about other steps required for database connectivity</li>
<li>Using the included web services that comes with vCenter (IIS users on your own for this one)</li>
</ul>
<p>To test, we’ll use a browser from a workstation and the XenDesktop DDC to validate connection (make sure the root CA certificate is added to the Trusted Roots for the Computer Account on each test and production server)</p>
<h2>Prep vCenter</h2>
<p>Since vCenter 4.1 now requires a 64-Bit Operating System (Server 2008 R2 Standard in my case), we&#8217;ll download the OpenSSL for Windows 64-Bit version.</p>
<p>Download <a href="http://www.slproweb.com/products/Win32OpenSSL.html">OpenSSL for Windows</a> (binary for the 64-bit version  v1.0.0a is <a href="http://www.slproweb.com/download/Win64OpenSSL-1_0_0a.exe">here</a>) You may have to install the Visual C++ 2008 redistributable package first.</p>
<p>Verify the private key exists in: <strong>C:\Users\All Users\VMware\VMware VirtualCenter\SSL\rui.key</strong> (you will need to change permissions to allow your user account to access this directory and files)</p>
<p>Copy  all the files in<strong> C:\Users\All Users\VMware\VMware VirtualCenter\SSL</strong> to a temporary location such as  <strong>c:\temp\vcenter\oldssl</strong> (create if needed)</p>
<p>Open a command shell and go to <strong>c:\temp\vcenter\newssl</strong> (create if needed)</p>
<p>Generate the new RSA private key (2048 bit) and the certificate request (most important is that the common name must be the FQDN of the server). For the CSR, I normally use the common name value.csr, but since we’re working with rui.*, we’ll use that here too:</p>
<pre>C:\temp\vcenter\newssl&gt;c:\OpenSSL-Win64\bin\openssl.exe req -newkey rsa:2048 -keyout rui.key -nodes -days 3650 -out rui.csr
Loading 'screen' into random state - done
Generating a 2048 bit RSA private key
.............................+++
......................................+++
writing new private key to 'rui.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:<strong>US</strong>
State or Province Name (full name) [Some-State]:<strong>Georgia</strong>
Locality Name (eg, city) []:<strong>Cumming</strong>
Organization Name (eg, company) [Internet Widgits Pty Ltd]:<strong>Gavin Adams</strong>
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:<strong>vcenter.peanuts.local</strong>
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

C:\temp\vcenter\newssl&gt;<strong>dir</strong>
Volume in drive C has no label.
Volume Serial Number is 204A-99B1
Directory of C:\temp\vcenter\newssl
04/16/2010  03:50 PM    &lt;DIR&gt;          .
04/16/2010  03:50 PM    &lt;DIR&gt;          ..
04/16/2010  03:50 PM             1,024 .rnd
04/16/2010  03:49 PM             1,675 privkey.pem
04/16/2010  03:50 PM             1,679 rui.key
04/16/2010  03:50 PM             1,005 rui.csr
</pre>
<p>From the vCenter system, browse to the certsrv URL for your Active Directory Certificate Authority (normally https://dcname/certsrv and probably will require a valid Active Directory user):</p>
<p><a href="http://www.gavinadams.org/blog/wp-content/uploads/2010/04/vcu-1.png"><img class="size-full wp-image-153 alignnone" title="vcu-1" src="http://www.gavinadams.org/blog/wp-content/uploads/2010/04/vcu-1.png" alt="" width="474" height="295" /></a></p>
<p>Select Request a certificate, advanced certificate request, and then <em>Submit a certificate using base-64….</em> Past the entire contents of the <strong>rui.csr </strong>(open in Notepad, select all &#8212; it will be all on one line, but a CTRL-A CTRL-C will do fine) in the Saved Request box, select <em>Web Server </em>for Certificate template:</p>
<p><a href="http://www.gavinadams.org/blog/wp-content/uploads/2010/04/vcu-2.png"><img class="alignnone size-full wp-image-154" title="vcu-2" src="http://www.gavinadams.org/blog/wp-content/uploads/2010/04/vcu-2.png" alt="" width="487" height="515" /></a></p>
<p>At this point the certificate will be signed. On the next page select <em>Base 64 encoded</em> then  <em>Download certificate</em> and save as <strong>rui.crt</strong> in <strong>c:\temp\vcenter\newssl</strong></p>
<p>From the private key and certificate, create the PFX fie:</p>
<pre>C:\temp\vcenter\newssl&gt;c:\OpenSSL-Win64\bin\openssl pkcs12 -export -in rui.crt -inkey rui.key -name rui -passout pass:testpassword -out rui.pfx</pre>
<p>Stop the following services:</p>
<blockquote><p>VMware VirtualCenter Management Webservices<br />
VMware VirtualCenter Server</p></blockquote>
<p>Copy  all the files in the newssl directory to :<strong> </strong><strong>C:\Users\All Users\VMware\VMware VirtualCenter\SSL</strong><strong>\</strong> replacing the existing ones. Don’t worry, we backed these up.</p>
<p>Now restart the services in this order (unsure if it matters):</p>
<blockquote><p>VMware VirtualCenter Server<br />
VMware VirtualCenter Management Webservices</p></blockquote>
<p>Use browser and navigate to the URL of the vCenter (e.g.,  <em>https://vcenter.peanuts.local</em>) and verify the certificate is valid. Open the vSphere client and verify all looks okay. After restarting the services, you will need  to reconnect to the ESX / ESXi hosts and re-authenticate with root credentials on each server. This is because the SSL trust between the two has changed and a new trust relationship needs to be established. Another reason for a longer term certificate!</p>
<h2>Problems and Resolution</h2>
<p>I&#8217;ll update the post with corrections, but with different configurations, we may run into different issues.</p>
<table border="0">
<caption><strong>Observed Problems and Resolutions</strong></caption>
<tbody>
<tr>
<td style="text-align: center;">Problem</td>
<td style="text-align: center;">Resolution</td>
</tr>
<tr>
<td>Web Service won&#8217;t restart with error<br />
One thing after this the webservice won’t start.<br />
in the log I found following error:<br />
vmware RSA_padding_check_PKCS1_type_2:block type is not 02</td>
<td>See VMware KB article: <a rel="nofollow" href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;cmd=displayKC&amp;externalId=1003070">http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;cmd=displayKC&amp;externalId=1003070</a></p>
<p>May require account password for database (assuming db other than SQL Server express)</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.gavinadams.org/blog/2010/07/14/replacing-vcenter-4-1-ssl-certificate-with-active-directory-issued-one/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 and PDF iFilter (Adobe)</title>
		<link>http://www.gavinadams.org/blog/2010/05/06/sharepoint-2010-and-pdf-ifilter-adobe</link>
		<comments>http://www.gavinadams.org/blog/2010/05/06/sharepoint-2010-and-pdf-ifilter-adobe#comments</comments>
		<pubDate>Thu, 06 May 2010 20:11:47 +0000</pubDate>
		<dc:creator>me@gavinadams.org</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[iFilter]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[SharePoint 2010]]></category>

		<guid isPermaLink="false">http://www.gavinadams.org/blog/?p=162</guid>
		<description><![CDATA[<p>I&#8217;d love to use Foxit&#8217;s super fast PDF iflter for my test SharePoint 2010 setup, but at $700, it&#8217;s not going to happen. However, the Adobe one works fine, after some regedit goodness. Looking online, there are lots of articles mentioning the SharePoint beta, but not the RTM. Here are the quick steps to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d love to use Foxit&#8217;s super fast PDF iflter for my test SharePoint 2010 setup, but at $700, it&#8217;s not going to happen. However, the Adobe one works fine, after some regedit goodness. Looking online, there are lots of articles mentioning the SharePoint beta, but not the RTM. Here are the quick steps to get it operational:</p>
<p><span id="more-162"></span></p>
<ol>
<li><a href="http://www.adobe.com/support/downloads/detail.jsp?ftpID=4025">Download </a>the 64-bit ifilter from Adobe (also, download and open <a href="http://www.adobe.com/special/acrobat/configuring_pdf_ifilter_for_ms_sharepoint_2007.pdf">these instructions</a> for the SharePoint 2007 install)</li>
<li>Stop IIS Admin (unsure if needed, what the heck)</li>
<li>Install the ifilter</li>
<li>From <a href="http://sptwentyten.wordpress.com/2009/12/30/install-foxit-pdf-ifilter-on-sharepoint-2010-beta/">these instructions</a>, download and install the PDF icon and update the DOCICON.XML (best to copy the line. I had a default icon and noticed I&#8217;d indented with a tab instead of spaces)</li>
<li>iisreset</li>
<li>In Central Admin, navigate to Search and add a file type for PDF</li>
<li>Now, follow the instructions for the registry edits in the Adobe install PDF. The UID is valid</li>
<li>net stop osearch14 &amp;&amp; net start osearch14</li>
<li>From Central Admin Search, start a complete crawl on the Content Source</li>
<li>iisreset (I had to do this a 2nd / 1,000,000th time as I got an error message when doing a search)</li>
</ol>
<p>In theory, in the results you&#8217;ll see the items with &#8220;crawled&#8221; underneath.</p>
<p>Hope this helps! I&#8217;ll clean this up if needed, enjoy all you SharePointers! It may not Foxit fast, but it does index the text content of the PDFs! Next up, FAST Search Server.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gavinadams.org/blog/2010/05/06/sharepoint-2010-and-pdf-ifilter-adobe/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Replacing vCenter 2.5 Self-Signed Certificate with Active Directory Issued One</title>
		<link>http://www.gavinadams.org/blog/2010/04/16/replacing-vicenter-2-5-self-signed-certificate-with-active-directory-issued-one</link>
		<comments>http://www.gavinadams.org/blog/2010/04/16/replacing-vicenter-2-5-self-signed-certificate-with-active-directory-issued-one#comments</comments>
		<pubDate>Fri, 16 Apr 2010 21:27:48 +0000</pubDate>
		<dc:creator>me@gavinadams.org</dc:creator>
				<category><![CDATA[PKI / Certificates]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[vCenter]]></category>

		<guid isPermaLink="false">http://www.gavinadams.org/blog/?p=145</guid>
		<description><![CDATA[<p>Certain third party products such as XenDesktop respect the expiration date on the vCenter SSL certificate. The vSphere Client doesn’t mind so much, nor it appears does the ESX hosts, but when your VDIs suddenly can’t be reached, it’s a bad thing.</p> <p>By default, vCenter will create a self-signed certificate with just the host [...]]]></description>
			<content:encoded><![CDATA[<p>Certain third party products such as XenDesktop respect the expiration date on the vCenter SSL certificate. The vSphere Client doesn’t mind so much, nor it appears does the ESX hosts, but when your VDIs suddenly can’t be reached, it’s a bad thing.</p>
<p>By default, vCenter will create a self-signed certificate with just the host name. In our case, since we’re not publishing any SSL services to the public and already have a Microsoft Certificate Authority, we can create and sign our own vCenter certificate. And just like the newer version of vCenter, we’ll set it up for 10 years too.</p>
<p>This can be completed in just under 15 minutes if all the prerequisites are in place. Took me an hour (including this documentation).</p>
<p><span id="more-145"></span></p>
<h3>Environment Summary</h3>
<p>For this process to work, the following assumptions are made:</p>
<ul>
<li>Active Directory installed and Certificate Authority installed (in my case, it’s on a Windows 2008 Domain Controller with Certificate Authority and Certificate Authority Web Enrollment )</li>
<li>DNS used for vCenter and internal FQDN name</li>
<li>vCenter server part of the domain, Domain Admin access to it</li>
<li>Using the included web services that comes with vCenter (IIS users on your own for this one)</li>
</ul>
<p>To test, we’ll use a browser from a workstation and the XenDesktop DDC to validate connection (make sure the root CA certificate is added to the Trusted Roots for the Computer Account on each test and production server)</p>
<h3>Prep vCenter</h3>
<p>Download OpenSSL for Windows (binaries can be found at: <a href="http://www.slproweb.com/products/Win32OpenSSL.html">http://www.slproweb.com/products/Win32OpenSSL.html</a>) . You may have to install the 2008 redistributable package first.</p>
<p>Open a command shell and go to <strong>c:\temp\vcenter\newssl</strong> (create if needed)</p>
<p>Verify the private key exists in: <strong>C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\SSL\rui.key</strong></p>
<p>Copy all the files in<strong> C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\SSL</strong> to a temporary location such as <strong>c:\temp\vcenter\oldssl</strong> (create if needed)</p>
<p>Generate the new RSA private key (2048 bit) and the certificate request (most important is that the common name must be the FQDN of the server). For the CSR, I normally use the common name value.csr, but since we’re working with rui.*, we’ll use that here too:</p>
<pre>C:\temp\vcenter\newssl&gt;c:\OpenSSL\bin\openssl.exe req -newkey rsa:2048 -keyout rui.key -nodes –days 3650 -out rui.csr
Loading 'screen' into random state - done
Generating a 2048 bit RSA private key
.............................+++
......................................+++
writing new private key to 'rui.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:<strong>US</strong>
State or Province Name (full name) [Some-State]:<strong>Georgia</strong>
Locality Name (eg, city) []:Cumming
Organization Name (eg, company) [Internet Widgits Pty Ltd]:<strong>Gavin Adams</strong>
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:<strong>vcenter.peanuts.local</strong>
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

C:\temp\vcenter\newssl&gt;<strong>dir</strong>
Volume in drive C has no label.
Volume Serial Number is 204A-99B1
Directory of C:\temp\vcenter\newssl
04/16/2010  03:50 PM    &lt;DIR&gt;          .
04/16/2010  03:50 PM    &lt;DIR&gt;          ..
04/16/2010  03:50 PM             1,024 .rnd
04/16/2010  03:49 PM             1,675 privkey.pem
04/16/2010  03:50 PM             1,679 rui.key
04/16/2010  03:50 PM             1,005 rui.csr
</pre>
<p>From the vCenter system, browse to the certsrv URL for your Active Directory Certificate Authority:</p>
<p><a href="http://www.gavinadams.org/blog/wp-content/uploads/2010/04/vcu-1.png"><img class="size-full wp-image-153 alignnone" title="vcu-1" src="http://www.gavinadams.org/blog/wp-content/uploads/2010/04/vcu-1.png" alt="" width="474" height="295" /></a></p>
<p>Select Request a certificate, advanced certificate request, and then Submit a certificate using base-64…. Past the entire contents of the CSR (open in Notepad) in the Saved Request box, select Web Server for Certificate template:</p>
<p><a href="http://www.gavinadams.org/blog/wp-content/uploads/2010/04/vcu-2.png"><img class="alignnone size-full wp-image-154" title="vcu-2" src="http://www.gavinadams.org/blog/wp-content/uploads/2010/04/vcu-2.png" alt="" width="487" height="515" /></a></p>
<p>At this point the certificate will be signed. On the next page select <em>Base 64 encoded</em> then  <em>Download certificate</em> and save as <strong>rui.crt</strong> in <strong>c:\temp\vcenter\newssl</strong></p>
<p>From the private key and certificate, create the PFX fie:</p>
<pre>C:\temp\vcenter\newssl&gt;c:\openssl\bin\openssl pkcs12 -export -in rui.crt -inkey rui.key -name rui -passout pass:testpassword -out rui.pfx</pre>
<p>Stop the following services:</p>
<blockquote><p>VMware VirtualCenter Management Webservices<br />
VMware VirtualCenter Server</p></blockquote>
<p>Copy  all the files in the newssl directory to :<strong> C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\SSL\</strong> replacing the existing ones. Don’t worry, we backed these up.</p>
<p>Now restart the services in this order (unsure if it matters):</p>
<blockquote><p>VMware VirtualCenter Server<br />
VMware VirtualCenter Management Webservices</p></blockquote>
<p>Use browser and navigate to the URL of the vCenter (e.g.,  <em>https://vcenter.peanuts.local</em>) and verify the certificate is valid. Open the vSphere client and verify all looks okay. After restarting the services, you will need  to reconnect to the ESX / ESXi hosts and re-authenticate with root credentials on each server. This is because the SSL trust between the two has changed and a new trust relationship needs to be established. Another reason for a longer term certificate!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gavinadams.org/blog/2010/04/16/replacing-vicenter-2-5-self-signed-certificate-with-active-directory-issued-one/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>vSphere 4 (ESX) Update 1 Sadness</title>
		<link>http://www.gavinadams.org/blog/2010/04/08/vsphere-4-esx-update-1-sadness</link>
		<comments>http://www.gavinadams.org/blog/2010/04/08/vsphere-4-esx-update-1-sadness#comments</comments>
		<pubDate>Thu, 08 Apr 2010 19:48:00 +0000</pubDate>
		<dc:creator>me@gavinadams.org</dc:creator>
				<category><![CDATA[VMware]]></category>
		<category><![CDATA[esx]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[update manager]]></category>

		<guid isPermaLink="false">http://www.gavinadams.org/blog/?p=141</guid>
		<description><![CDATA[<p>VMware&#8217;s Update Manager has always been too complex and cumbersome for small installations. However, back in the EX 3.5 days, it at least worked. Late last year when vSphere 4 Update 1 came out, I once again tried using good ol&#8217; Update Manager.</p> <p>So, after downloading the ISO image (at least the DVD can [...]]]></description>
			<content:encoded><![CDATA[<p>VMware&#8217;s Update Manager has always been too complex and cumbersome for small installations. However, back in the EX 3.5 days, it at least worked. Late last year when vSphere 4 Update 1 came out, I once again tried using good ol&#8217; Update Manager.</p>
<p><span id="more-141"></span>So, after downloading the ISO image (at least the DVD can be used to build new hosts) I went through the process of baseline creation, compliance, added the host, and viola, Upgrade is not supported from host version 4.0.0 to blah blah blah.</p>
<p><a href="http://www.gavinadams.org/blog/wp-content/uploads/2010/04/Bad-ESX-Upgrade.png"><img class="aligncenter size-full wp-image-142" title="Bad ESX Upgrade" src="http://www.gavinadams.org/blog/wp-content/uploads/2010/04/Bad-ESX-Upgrade.png" alt="" width="567" height="191" /></a>Luckily, esxupdate to the rescue. I uploaded the .zip file bundle (not the ISO image, so another 900MiB download) to VMFS storage and ran the update script from the location of the .zip file after putting the host into maintenance mode:</p>
<p><code># esxupdate --bundle=ESX-4.0.0-update01a.zip update</code></p>
<p>Performed a reboot, and the host is now running at ESX 4.0.0 build 208167. Caveats:</p>
<ul>
<li>Make sure 3rd party monitoring and management packages are uninstalled first (e.g., HP or Dell)</li>
<li>Maintenance mode (natch)</li>
</ul>
<p>VMware&#8217;s market lead is based on large scale management and features you cannot find (yet) in Xen or Hyper-V. I love most features and the UI of vCenter, but the add-ons really need to be better managed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gavinadams.org/blog/2010/04/08/vsphere-4-esx-update-1-sadness/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snow Leopard Certificate Sillyness</title>
		<link>http://www.gavinadams.org/blog/2010/01/05/snow-leopard-certificate-sillyness</link>
		<comments>http://www.gavinadams.org/blog/2010/01/05/snow-leopard-certificate-sillyness#comments</comments>
		<pubDate>Tue, 05 Jan 2010 22:10:46 +0000</pubDate>
		<dc:creator>me@gavinadams.org</dc:creator>
				<category><![CDATA[OS X]]></category>
		<category><![CDATA[PKI / Certificates]]></category>
		<category><![CDATA[pkcs12]]></category>
		<category><![CDATA[startssl.com]]></category>

		<guid isPermaLink="false">http://www.gavinadams.org/blog/?p=132</guid>
		<description><![CDATA[<p>I love OS X and every iteration has gotten better and better. But every once in a while tasks that should be simple&#8211;aren&#8217;t. Take the case of trying to add a S/MIME certificate to the Keychain.</p> <p>In the past, simply double-clicking on the .p12 file would prompt for the passphrase and import it into [...]]]></description>
			<content:encoded><![CDATA[<p>I love OS X and every iteration has gotten better and better. But every once in a while tasks that should be simple&#8211;aren&#8217;t. Take the case of trying to add a S/MIME certificate to the Keychain.</p>
<p>In the past, simply double-clicking on the .p12 file would prompt for the passphrase and import it into the login chain. After getting my certificate issued by StartSSL and stored in Firefox, I exported the certificate and private key, set a passphrase, double-clicked, and&#8230;.</p>
<p><a href="http://www.gavinadams.org/blog/wp-content/uploads/2010/01/hate-the-keychain.png"><img class="aligncenter size-full wp-image-133" title="hate-the-keychain" src="http://www.gavinadams.org/blog/wp-content/uploads/2010/01/hate-the-keychain.png" alt="" width="750" height="385" /></a></p>
<p><strong>An error has occurred. Unable to import an item. The contents of this item cannot be retrieved. You failed to provide the necessary administrator authorization.</strong> <em>(Added so the search engines will pick this up)</em></p>
<p><span id="more-132"></span>And so the battle commenced. There really isn&#8217;t a lot out there discussing when Keychain Access fails. The closest similar discussion was by Midori Green (email thread <a href="http://www.mail-archive.com/openssl-users@openssl.org/msg59442.html">here</a>). The error was different, but it was the same attempt to import a PKCS12 file.</p>
<p>I tried using openssl to rearrange the certificates in the file (after exporting into PEM format), tried adding/removing/changing the private key passphrase, import/export from a Windows machine in .PFX format, and even trying to recreate the PKCS12 file from its&#8217; constituent parts.</p>
<p>Luckily, I ran across this post on <a href="http://krypted.com/mac-os-x/basic-pkcs12-management-with-security/">krypted.com</a> that mentioned the CLI command <em>security</em>. After placing the exported .p12 file (from Firefox) in a directory and launching terminal, I was able to use the command:</p>
<pre>linus:gadams$ <strong>security import startssl-smime-cert.p12 -f pkcs12 ~/Library/Keychains/login.keychain</strong>
1 identity imported.
2 certificates imported.
</pre>
<p>And <em>bam!</em>, the certificate loaded. Composing a new message in Mail.app showed the signing and encryption boxes. Although I still get invalid signatures when sending rich text format messages, plain text are properly getting signed.</p>
<p>I am curious exactly what command is executed when you double-click on a certificate file. I assume the <em>Keychain access </em>application makes underly calls to <em>security</em>, but I&#8217;d like to be able to trace the steps it takes.</p>
<p>Side note, I&#8217;m going to do an opinion piece of certificate authorities in general and digital certificates, SSL, S/MIME, and all that rot. There are some great options for small companies and individuals to get certificates at a cheap or free price. No Verisign or GTE Cybertrust (err Verizon Business) $$$$$ prices need apply!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gavinadams.org/blog/2010/01/05/snow-leopard-certificate-sillyness/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>DeltaCopy on Windows 7 and Scheduled Tasks</title>
		<link>http://www.gavinadams.org/blog/2009/10/22/deltacopy-on-windows-7-and-scheduled-tasks</link>
		<comments>http://www.gavinadams.org/blog/2009/10/22/deltacopy-on-windows-7-and-scheduled-tasks#comments</comments>
		<pubDate>Fri, 23 Oct 2009 03:08:29 +0000</pubDate>
		<dc:creator>me@gavinadams.org</dc:creator>
				<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[deltacopy]]></category>
		<category><![CDATA[scheduled tasks]]></category>

		<guid isPermaLink="false">http://www.gavinadams.org/blog/?p=119</guid>
		<description><![CDATA[<p>DeltaCopy is a great easy to use rsync client (and server) for Windows. Based on Cygwin, it front-end the rsync client and adds the capabilities to schedule tasks and send email notifications.</p> <p>In the past under Windows XP, scheduling tasks was a breeze. It still is under Windows 7, except by default they don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp">DeltaCopy</a> is a great easy to use rsync client (and server) for Windows. Based on Cygwin, it front-end the rsync client and adds the capabilities to schedule tasks and send email notifications.</p>
<p>In the past under Windows XP, scheduling tasks was a breeze. It still is under Windows 7, except by default they don&#8217;t run. I assume the application hasn&#8217;t been fully tested under Windows 7, and I know it can have issues with UAC and the scheduler.</p>
<p>I&#8217;ll explain the steps I&#8217;ve taken to get backup tasks to operate.<span id="more-119"></span></p>
<h2>Installation</h2>
<p>A normal installation works fine, but to insure UAC doesn&#8217;t mess with anything I use C:\DeltaCopy as the installation directory.</p>
<h2>Creating a New Copy Job</h2>
<p>I won&#8217;t go through the details of selecting directories for backup, but when selecting the scheduling option, the way the task is created needs to be modified. For example, a new job called Backup Stuff is created:</p>
<p><img class="size-full wp-image-120 alignnone" title="Backup Jobs" src="http://www.gavinadams.org/blog/wp-content/uploads/2009/10/10-22-2009-10-49-40-PM.png" alt="Backup Jobs" width="631" height="638" /></p>
<p>By default the schedule is created, but not run. Selecting the Modify Schedule button shows the created settings:</p>
<p><img class="alignnone size-full wp-image-121" title="Default schedule options" src="http://www.gavinadams.org/blog/wp-content/uploads/2009/10/10-22-2009-10-49-52-PM.png" alt="Default schedule options" width="408" height="454" /></p>
<p>As you can see, the run command reference the .dcp file, which I assume contains the parameters for the backup job. On the run command, insert deltac.exe then a space, then the .DCP file, like so:</p>
<p><img class="alignnone size-full wp-image-122" title="Modified Settings" src="http://www.gavinadams.org/blog/wp-content/uploads/2009/10/10-22-2009-11-03-28-PM.png" alt="Modified Settings" width="416" height="461" /></p>
<p>Select the Schedule tab or settings for configuring the job like any other Windows task. When you hit apply, the job should run as expected.</p>
<p>let me know if anyone runs into problems with this!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gavinadams.org/blog/2009/10/22/deltacopy-on-windows-7-and-scheduled-tasks/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Wacom Graphire Tablet and Photoshop CS4 64-Bit</title>
		<link>http://www.gavinadams.org/blog/2009/06/17/wacom-graphire-tablet-and-photoshop-cs4-64-bit</link>
		<comments>http://www.gavinadams.org/blog/2009/06/17/wacom-graphire-tablet-and-photoshop-cs4-64-bit#comments</comments>
		<pubDate>Wed, 17 Jun 2009 18:07:40 +0000</pubDate>
		<dc:creator>me@gavinadams.org</dc:creator>
				<category><![CDATA[Graphire]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://www.gavinadams.org/blog/?p=110</guid>
		<description><![CDATA[<p>Overall Photoshop CS4 Extended is running like a champ in 64-bit mode. It sees 6GB of RAM and all my plugins are working fine. However, my older Wacom Graphire tablet isn&#8217;t working for pressure sensitivty in Photoshop. There is a solution!</p> <p>I&#8217;m running Windows 7 RC1 64-bit  (build 7100), and downloaded the corresponding driver [...]]]></description>
			<content:encoded><![CDATA[<p>Overall Photoshop CS4 Extended is running like a champ in 64-bit mode. It sees 6GB of RAM and all my plugins are working fine. However, my older Wacom Graphire tablet isn&#8217;t working for pressure sensitivty in Photoshop. There is a solution!</p>
<p><span id="more-110"></span>I&#8217;m running Windows 7 RC1 64-bit  (build 7100), and downloaded the corresponding driver file for my tablet (release date of Sep 10, 2007). It works fine, and pressure sensitivity works in Photoshop 32-bit and the tablet preferences. Wacom support said to download the driver for the Intuos 4 (Vista OS). The driver is <a href="http://www.wacom.com/downloads/driver-detail.php?id=194"><strong>WacomTablet_611-3.exe</strong></a> (link may change) and after removing the older driver and installing this one, all tablet features working AOK!</p>
<p>Make sure to apply the 11.0.1 Photoshop update as there are numerous complaints of tablet issues with the initial CS4 release (11.0.0).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gavinadams.org/blog/2009/06/17/wacom-graphire-tablet-and-photoshop-cs4-64-bit/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>CentOS 5.2 &#8211; Apache &#8211; Kerberos / Active Directory Authentication</title>
		<link>http://www.gavinadams.org/blog/2009/03/25/centos-52-apache-kerberos-active-directory-authentication</link>
		<comments>http://www.gavinadams.org/blog/2009/03/25/centos-52-apache-kerberos-active-directory-authentication#comments</comments>
		<pubDate>Wed, 25 Mar 2009 19:36:40 +0000</pubDate>
		<dc:creator>me@gavinadams.org</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[CentOS 5.2]]></category>
		<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Centos]]></category>
		<category><![CDATA[Kerberos]]></category>
		<category><![CDATA[Microsoft Windows]]></category>

		<guid isPermaLink="false">http://www.gavinadams.org/blog/?p=35</guid>
		<description><![CDATA[<p>Linux and Windows Active Directory (AD) integration has come a long ways since 2000. It is now quite easy to take advantage of Kerberos for managing authentication at the host level (user logins and such). Surprisingly, it&#8217;s just as easy to the same in Apache now.</p> <p>This posting will walk you through the steps [...]]]></description>
			<content:encoded><![CDATA[<p>Linux and Windows Active Directory (AD) integration has come a long ways since 2000. It is now quite easy to take advantage of Kerberos for managing authentication at the host level (user logins and such). Surprisingly, it&#8217;s just as easy to the same in Apache now.</p>
<p>This posting will walk you through the steps needed to configure and test authentication against a valid AD user.</p>
<h3>Prerequisites</h3>
<p>It is assumed the following prerequisites are in place:</p>
<ul>
<li>CentOS 5.2 Server &#8211; fully updated</li>
<li>Apache, Kerberos, and supporting packages installed</li>
<li>Samba configured as member server (net ads join has been successfully performed)</li>
<li>Windows Server 2003 R2 or 2008 SP1 with UNIX Identity Management extensions installed</li>
<li>Kerberos working (kinit from a AD user properly authenticates and klist shows tickets)</li>
</ul>
<p><span id="more-35"></span>If possible, test this from a freshly installed machine. In this example, the following servers and realms will be referenced:</p>
<pre style="padding-left: 30px;">AD Server       dc01.example.com
Linux Server    www.example.com
Computer Object www
Kerberos Realm  EXAMPLE.COM</pre>
<h3>Creating the SPN</h3>
<p>Kerberos uses a <em>service principal name </em>for each service available on the host. For a server that can authenticate against AD, this would include at least the HOST principal. From the AD server, issue the setspn command to view the current SPN&#8217;s assigned to www.example.com (use the canonical name for www, not the FQDN):</p>
<pre style="padding-left: 30px;">C:\&gt;<strong>setspn -L www</strong>
Registered ServicePrincipalNames for CN=www,CN=Computers,DC=example,DC=com:
        HOST/www
        HOST/www.example.com</pre>
<p>Now as root on www issue the command to create the HTTP SPN (the net ads command is provided by the samba packages&#8211;make sure these are installed even if they are not used):</p>
<pre style="padding-left: 30px;">[root@www /]#<strong> net ads keytab add HTTP -U administrator</strong>
Processing principals to add...
administrator's password: <strong>*******</strong></pre>
<p>The -U is used to provide an administrator account with Domain Admin privileges. This step has added the SPN which we&#8217;ll see in AD, and it has also updated the local keytab file /etc/krb5.keytab with the SPN bits.</p>
<p>To verify the SPN has been created properly, issue the same setspn command and verify there are entries for HTTP. It should look something like this:</p>
<pre style="padding-left: 30px;">C:\&gt;<strong>setspn -L www</strong>
Registered ServicePrincipalNames for CN=www,CN=Computers,DC=example,DC=com:
        HTTP/www
        HTTP/www.example.com
        HOST/www
        HOST/www.example.com</pre>
<h3>Configure Apache</h3>
<p>Make sure the package mod_auth_kerb is installed. This should create the configuration file in /etc/httpd/conf.d/auth_kerb.conf which will load the Kerberos module and provide a commented out example (which we&#8217;ll use). First, because httpd runs as apache, we need to copy the keytab file and change permissions so that apache can read it. I&#8217;ve placed it in the default specified in the auth_kerb.conf file:</p>
<pre style="padding-left: 30px;">[root@www /]#<strong> cp /etc/krb5.keytab /etc/httpd/conf/keytab2</strong>
[root@www /]# <strong>ls -l /etc/httpd/conf</strong>
total 64
-rw-r--r-- 1 root   root   33760 Mar 25 14:01 httpd.conf
---------- 1 root   root    1321 Mar 25 15:06 keytab
-rw-r--r-- 1 root   root   12958 Nov 12 10:43 magic
[root@www /]# <strong>chown apache.apache /etc/httpd/conf/keytab2</strong>
[root@www /]# <strong>chmod 400 /etc/httpd/conf/keytab2</strong>
[root@www /]# <strong>ls -l /etc/httpd/conf</strong>
total 64
-rw-r--r-- 1 root   root   33760 Mar 25 14:01 httpd.conf
-r-------- 1 apache apache  1321 Mar 25 15:06 keytab
-rw-r--r-- 1 root   root   12958 Nov 12 10:43 magic</pre>
<h3>Create an Apache Location for Testing</h3>
<p>Now modify the &#8220;private&#8221; location and uncomment the directives and set them for the realm (changes from defaults in bold):</p>
<pre style="padding-left: 30px;">[root@www /]# vi /etc/http/conf.d/auth_kerb.conf# The mod_auth_kerb module implements Kerberos authentication over
# HTTP, following the "Negotiate" protocol.
#
LoadModule auth_kerb_module modules/mod_auth_kerb.so
#
# Sample configuration: Kerberos authentication must only be
# used over SSL to prevent replay attacks.  The keytab file
# configured must be readable only by the "apache" user, and
# must contain service keys for "HTTP/www.example.com", where
# "www.example.com" is the FQDN of this server.
#

#&lt;Location /private&gt;
#  SSLRequireSSL
 AuthType Kerberos
 AuthName "Kerberos Login"
 KrbMethodNegotiate On
 KrbMethodK5Passwd <strong>On</strong>
 KrbAuthRealms <strong>EXAMPLE.COM</strong>
 Krb5KeyTab /etc/httpd/conf/keytab
 require valid-user
&lt;/Location&gt;</pre>
<p>Create the directory (/var/www/html/private) and a test HTML file in the directory (index.html). Restart httpd and navigate to the URL (http://www.example.com/private/index.html). You should be prompted for credentials. Using a valid AD user and password should get you in. A side benefit is that if logged into a workstation within the domain (e.g., Windows XP, Vista, etc), using Internet Explorer should use your Kerberos credentials to authenticate.</p>
<h3>Uses</h3>
<p>For production use, any application or web service that can use Apache&#8217;s authentication mechanisms should work. Take care to understand that even if you enter a short username, the realm will be appended onto the end. In this example, the username gadams would appear as gadams@EXAMPLE.COM in the log files, and probably be presented to the referenced application.</p>
<h3>Credit</h3>
<p>I&#8217;d like to <a href="http://blog.scottlowe.org/" target="_blank">Scott Lowe </a>for all the articles he has done on Linux / AD / Kerberos integration, and<a href="http://blog.scottlowe.org/2006/08/10/kerberos-based-sso-with-apache/" target="_blank"> this article</a>, which was where I started my CentOS / Apache / Kerberos / AD journey. His article covers all the basics, but a lot has changed (for the better) since 2006. Thanks Scott!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gavinadams.org/blog/2009/03/25/centos-52-apache-kerberos-active-directory-authentication/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
