<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: The Fifteen Minute Guide to Mutual Authentication</title>
	<atom:link href="http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/feed/" rel="self" type="application/rss+xml" />
	<link>http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/</link>
	<description>Covering J2EE Security and WebLogic Topics</description>
	<lastBuildDate>Sat, 06 Mar 2010 14:21:00 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: IMAP on the iPhone with SSL client certificates &#171; #!/bin/blog</title>
		<link>http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/comment-page-1/#comment-14272</link>
		<dc:creator>IMAP on the iPhone with SSL client certificates &#171; #!/bin/blog</dc:creator>
		<pubDate>Thu, 12 Nov 2009 22:06:02 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=29#comment-14272</guid>
		<description>[...] IMAP on the iPhone with SSL client&#160;certificates Filed under: iphone &#8212; Tags: certificate, imap, iphone, ssl &#8212; martin @ 11:02 pm   The IMAP server in my office is configured to not just accept username/password authenticated connections from the internet. As an additional security measure, it requires the client to present a valid SSL client certificate, issued by the internal CA, resulting in mutual SSL authentication. [...]</description>
		<content:encoded><![CDATA[<p>[...] IMAP on the iPhone with SSL client&nbsp;certificates Filed under: iphone &#8212; Tags: certificate, imap, iphone, ssl &#8212; martin @ 11:02 pm   The IMAP server in my office is configured to not just accept username/password authenticated connections from the internet. As an additional security measure, it requires the client to present a valid SSL client certificate, issued by the internal CA, resulting in mutual SSL authentication. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lee</title>
		<link>http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/comment-page-1/#comment-14259</link>
		<dc:creator>Lee</dc:creator>
		<pubDate>Wed, 26 Aug 2009 17:35:17 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=29#comment-14259</guid>
		<description>Mike - We were looking at authN based solely on client certs (mapping them to users or roles has to differed).  I was hesitant to use self-signed certs, but that may be the best solution out of the four options -- a white-list of allowed clients. 

Appreciate your valuable feedback.</description>
		<content:encoded><![CDATA[<p>Mike &#8211; We were looking at authN based solely on client certs (mapping them to users or roles has to differed).  I was hesitant to use self-signed certs, but that may be the best solution out of the four options &#8212; a white-list of allowed clients. </p>
<p>Appreciate your valuable feedback.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Fleming</title>
		<link>http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/comment-page-1/#comment-14258</link>
		<dc:creator>Mike Fleming</dc:creator>
		<pubDate>Wed, 26 Aug 2009 01:08:50 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=29#comment-14258</guid>
		<description>Lee,

You&#039;ve laid out your options nicely. One and four are essentially the same, though. If validation is an issue in #4 you could always use your own validator.

Any of your options will work but there are two other possibilities to consider. The first is to map users to groups and groups to roles. Protect your web service using the roles and then only users in your group are authorized to use the web service. That would solve the anybody-signed-by-the-CA-has-access problem.

The other option is to have a look at WebLogic&#039;s built-in certificate registry. It&#039;s like a reverse CRL lookup in that only certificates present in the registry are accepted. Here&#039;s a snippet from the WLS docs:

&quot;The WebLogic Server Certificate Registry is an out-of-the-box CertPath provider that allows the administrator to configure a list of trusted end certificates via the Administration Console. The Certificate Registry is a builder/validator. The selection criteria can be EndCertificateSelector, SubjectDNSelector, IssuerDNSerialNumberSelector, or SubjectKeyIdentifier. The certificate chain that is returned has only the end certificate. When it validates a chain, it makes sure only that the end certificate is registered; no further checking is done.&quot;

So, really, I think your decision comes down to how do you want to administer users? Adding certs to trust stores requires file system access while a WLS admin can add a user to the registry or a group via WLS Console. If you use an external user store you&#039;d add/remove users as appropriate for the product.

HTH,

Mike</description>
		<content:encoded><![CDATA[<p>Lee,</p>
<p>You&#8217;ve laid out your options nicely. One and four are essentially the same, though. If validation is an issue in #4 you could always use your own validator.</p>
<p>Any of your options will work but there are two other possibilities to consider. The first is to map users to groups and groups to roles. Protect your web service using the roles and then only users in your group are authorized to use the web service. That would solve the anybody-signed-by-the-CA-has-access problem.</p>
<p>The other option is to have a look at WebLogic&#8217;s built-in certificate registry. It&#8217;s like a reverse CRL lookup in that only certificates present in the registry are accepted. Here&#8217;s a snippet from the WLS docs:</p>
<p>&#8220;The WebLogic Server Certificate Registry is an out-of-the-box CertPath provider that allows the administrator to configure a list of trusted end certificates via the Administration Console. The Certificate Registry is a builder/validator. The selection criteria can be EndCertificateSelector, SubjectDNSelector, IssuerDNSerialNumberSelector, or SubjectKeyIdentifier. The certificate chain that is returned has only the end certificate. When it validates a chain, it makes sure only that the end certificate is registered; no further checking is done.&#8221;</p>
<p>So, really, I think your decision comes down to how do you want to administer users? Adding certs to trust stores requires file system access while a WLS admin can add a user to the registry or a group via WLS Console. If you use an external user store you&#8217;d add/remove users as appropriate for the product.</p>
<p>HTH,</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lee</title>
		<link>http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/comment-page-1/#comment-14256</link>
		<dc:creator>Lee</dc:creator>
		<pubDate>Tue, 25 Aug 2009 21:43:19 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=29#comment-14256</guid>
		<description>Thanks for simplifying a complicated topic.  My question:

What is the best approach for restricting access to your webservice to specific clients only?  There seem to be a few options, some more restrictive than others:

1.  Clients use self-signed certs. They share their self-signed certs with us out-of-band and we import them into our truststore. We remove all other certs (CAs, intermediaries) from our truststore, so now only those clients can connect whose end-entity, self-signed certs are in our truststore.

2.  client uses a CA-signed cert. We add the CA to our trust store (if it&#039;s not already there by default). But now anyone with a cert issued by that CA can connect. This is the most basic option.

3. Our internal CA signs the client&#039;s cert. (The clients submit the CSR to our CA.) Our truststore contains only our internal CA&#039;s cert. So now only those clients can connect that have certs issued by our CA. 

4.  The client uses a cert issued by another CA. We add the client&#039;s end-entity cert into our truststore. The truststore doesn&#039;t contain any CA/intermediary certs, it contains only client end-entity certs.  Would this even work when our service performs cert path validation, as the end-entity issuing CA certs will not be in our truststore?

Any suggestions would be appreciated.  Thanks!</description>
		<content:encoded><![CDATA[<p>Thanks for simplifying a complicated topic.  My question:</p>
<p>What is the best approach for restricting access to your webservice to specific clients only?  There seem to be a few options, some more restrictive than others:</p>
<p>1.  Clients use self-signed certs. They share their self-signed certs with us out-of-band and we import them into our truststore. We remove all other certs (CAs, intermediaries) from our truststore, so now only those clients can connect whose end-entity, self-signed certs are in our truststore.</p>
<p>2.  client uses a CA-signed cert. We add the CA to our trust store (if it&#8217;s not already there by default). But now anyone with a cert issued by that CA can connect. This is the most basic option.</p>
<p>3. Our internal CA signs the client&#8217;s cert. (The clients submit the CSR to our CA.) Our truststore contains only our internal CA&#8217;s cert. So now only those clients can connect that have certs issued by our CA. </p>
<p>4.  The client uses a cert issued by another CA. We add the client&#8217;s end-entity cert into our truststore. The truststore doesn&#8217;t contain any CA/intermediary certs, it contains only client end-entity certs.  Would this even work when our service performs cert path validation, as the end-entity issuing CA certs will not be in our truststore?</p>
<p>Any suggestions would be appreciated.  Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Fleming</title>
		<link>http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/comment-page-1/#comment-14252</link>
		<dc:creator>Mike Fleming</dc:creator>
		<pubDate>Fri, 14 Aug 2009 00:16:30 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=29#comment-14252</guid>
		<description>Asi,

You&#039;ll get that error unless the CN for your certificate happens to be &quot;localhost&quot; which it is not. Basically, it&#039;s working as it should. The browser is warning you that while you requested website &quot;localhost,&quot; the site presented its ID as &quot;abc.com&quot; or whatever your certificate&#039;s CN is.

To make the error go away you can add an exception (which you normally wouldn&#039;t want to do) or use DNS to route &quot;abc.com&quot; to the machine where you&#039;re running WebLogic. Then, you can go to https://abc.com:7002/console and the browser won&#039;t complain.

HTH,

Mike</description>
		<content:encoded><![CDATA[<p>Asi,</p>
<p>You&#8217;ll get that error unless the CN for your certificate happens to be &#8220;localhost&#8221; which it is not. Basically, it&#8217;s working as it should. The browser is warning you that while you requested website &#8220;localhost,&#8221; the site presented its ID as &#8220;abc.com&#8221; or whatever your certificate&#8217;s CN is.</p>
<p>To make the error go away you can add an exception (which you normally wouldn&#8217;t want to do) or use DNS to route &#8220;abc.com&#8221; to the machine where you&#8217;re running WebLogic. Then, you can go to <a href="https://abc.com:7002/console" rel="nofollow">https://abc.com:7002/console</a> and the browser won&#8217;t complain.</p>
<p>HTH,</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: asi</title>
		<link>http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/comment-page-1/#comment-14251</link>
		<dc:creator>asi</dc:creator>
		<pubDate>Thu, 13 Aug 2009 06:27:24 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=29#comment-14251</guid>
		<description>Hi,
  Thanks for publishing such a nice article! it was so helpful. I tried to install the client side certificate in the browser and do the required changes in weblogic for two way ssl authentication. Now,when i access https://localhost:7002/console --&gt;it gives me a certificate error 
-------------------------
&quot;The security certificate presented by this website was issued for a different website&#039;s address.

Security certificate problems may indicate an attempt to fool you or intercept any data you send to the server.&quot;
---------------------------
No warnings display in the console as well :(
could you please help me on this?

Thanks,
asi</description>
		<content:encoded><![CDATA[<p>Hi,<br />
  Thanks for publishing such a nice article! it was so helpful. I tried to install the client side certificate in the browser and do the required changes in weblogic for two way ssl authentication. Now,when i access <a href="https://localhost:7002/console" rel="nofollow">https://localhost:7002/console</a> &#8211;&gt;it gives me a certificate error<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
&#8220;The security certificate presented by this website was issued for a different website&#8217;s address.</p>
<p>Security certificate problems may indicate an attempt to fool you or intercept any data you send to the server.&#8221;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
No warnings display in the console as well <img src='http://monduke.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
could you please help me on this?</p>
<p>Thanks,<br />
asi</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Fleming</title>
		<link>http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/comment-page-1/#comment-14248</link>
		<dc:creator>Mike Fleming</dc:creator>
		<pubDate>Tue, 28 Jul 2009 01:57:25 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=29#comment-14248</guid>
		<description>Melvin,

Yes, each client needs a certificate to present to the web service. They could even be the same certificate if you wish. It doesn&#039;t matter as long as the web service trusts the signer of the client cert.

DNS doesn&#039;t matter for the client certificate. In fact, in the article the client certificate is for a user named &quot;Spongebob.&quot; However, a server could have its own certificate such as &quot;bank.com.&quot; It&#039;s very common for middleware to use such certs for client authentication to other services.

HTH,

Mike</description>
		<content:encoded><![CDATA[<p>Melvin,</p>
<p>Yes, each client needs a certificate to present to the web service. They could even be the same certificate if you wish. It doesn&#8217;t matter as long as the web service trusts the signer of the client cert.</p>
<p>DNS doesn&#8217;t matter for the client certificate. In fact, in the article the client certificate is for a user named &#8220;Spongebob.&#8221; However, a server could have its own certificate such as &#8220;bank.com.&#8221; It&#8217;s very common for middleware to use such certs for client authentication to other services.</p>
<p>HTH,</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Melvin</title>
		<link>http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/comment-page-1/#comment-14247</link>
		<dc:creator>Melvin</dc:creator>
		<pubDate>Mon, 27 Jul 2009 22:08:52 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=29#comment-14247</guid>
		<description>A great post - thank you so much.
I have some questions - 

if I have two java runtime (exactly duplicate), but in different servers, trying to access a web service using mutual SSL.

1&gt; do I need DNS name for my client runtime - or I could just give my client any name I like;
2&gt; do I need to have a certificate for each of my client runtime?  

Thanks</description>
		<content:encoded><![CDATA[<p>A great post &#8211; thank you so much.<br />
I have some questions &#8211; </p>
<p>if I have two java runtime (exactly duplicate), but in different servers, trying to access a web service using mutual SSL.</p>
<p>1&gt; do I need DNS name for my client runtime &#8211; or I could just give my client any name I like;<br />
2&gt; do I need to have a certificate for each of my client runtime?  </p>
<p>Thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Fleming</title>
		<link>http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/comment-page-1/#comment-14163</link>
		<dc:creator>Mike Fleming</dc:creator>
		<pubDate>Wed, 13 May 2009 02:33:02 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=29#comment-14163</guid>
		<description>Sanyam,

Thanks for the encouragement!

Your question inspired me to write &quot;Certificate to User Mapping in WebLogic&quot; (http://monduke.com/2009/05/12/certificate-to-user-mapping-in-weblogic/).

Thanks, and feel free to comment either here or there if I didn&#039;t answer your question.</description>
		<content:encoded><![CDATA[<p>Sanyam,</p>
<p>Thanks for the encouragement!</p>
<p>Your question inspired me to write &#8220;Certificate to User Mapping in WebLogic&#8221; (<a href="http://monduke.com/2009/05/12/certificate-to-user-mapping-in-weblogic/" rel="nofollow">http://monduke.com/2009/05/12/certificate-to-user-mapping-in-weblogic/</a>).</p>
<p>Thanks, and feel free to comment either here or there if I didn&#8217;t answer your question.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sanyam</title>
		<link>http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/comment-page-1/#comment-14162</link>
		<dc:creator>Sanyam</dc:creator>
		<pubDate>Tue, 12 May 2009 10:14:20 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=29#comment-14162</guid>
		<description>I was wondering that we still hasn&#039;t achieved the true authentication by this. we still have to define  a mapping b/w user and certs.
any commnets?</description>
		<content:encoded><![CDATA[<p>I was wondering that we still hasn&#8217;t achieved the true authentication by this. we still have to define  a mapping b/w user and certs.<br />
any commnets?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sanyam</title>
		<link>http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/comment-page-1/#comment-14161</link>
		<dc:creator>Sanyam</dc:creator>
		<pubDate>Tue, 12 May 2009 05:45:12 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=29#comment-14161</guid>
		<description>hey thanks for the wonderful single page guide .keep blogging :)</description>
		<content:encoded><![CDATA[<p>hey thanks for the wonderful single page guide .keep blogging <img src='http://monduke.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Fleming</title>
		<link>http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/comment-page-1/#comment-3661</link>
		<dc:creator>Mike Fleming</dc:creator>
		<pubDate>Fri, 20 Apr 2007 01:03:14 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=29#comment-3661</guid>
		<description>Mek,

To my knowledge, the 8.1 plugin doesn&#039;t support two-way SSL. I don&#039;t know about WLS 9.x.</description>
		<content:encoded><![CDATA[<p>Mek,</p>
<p>To my knowledge, the 8.1 plugin doesn&#8217;t support two-way SSL. I don&#8217;t know about WLS 9.x.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mek</title>
		<link>http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/comment-page-1/#comment-3643</link>
		<dc:creator>mek</dc:creator>
		<pubDate>Thu, 19 Apr 2007 16:36:20 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=29#comment-3643</guid>
		<description>very good work .. 
Do you know how to configure apache2 and weblogic plugin with 2-way ssl ? I need to use apache2 as fron-end for load balancig and architercural restrictions ..

thanks.</description>
		<content:encoded><![CDATA[<p>very good work ..<br />
Do you know how to configure apache2 and weblogic plugin with 2-way ssl ? I need to use apache2 as fron-end for load balancig and architercural restrictions ..</p>
<p>thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Turnbull</title>
		<link>http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/comment-page-1/#comment-2971</link>
		<dc:creator>James Turnbull</dc:creator>
		<pubDate>Thu, 22 Mar 2007 00:27:01 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=29#comment-2971</guid>
		<description>Excellent article!  I was looking for a simple  explanation of MASSL to give to some people and this fits the bill perfectly.  *claps*</description>
		<content:encoded><![CDATA[<p>Excellent article!  I was looking for a simple  explanation of MASSL to give to some people and this fits the bill perfectly.  *claps*</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Red-3</title>
		<link>http://monduke.com/2006/06/04/the-fifteen-minute-guide-to-mutual-authentication/comment-page-1/#comment-830</link>
		<dc:creator>Red-3</dc:creator>
		<pubDate>Thu, 26 Oct 2006 21:44:49 +0000</pubDate>
		<guid isPermaLink="false">http://monduke.com/?p=29#comment-830</guid>
		<description>Thanks. This is great. The BEA documentation is like a map showing you all the locations but with no indication of where you need to go. Posts like this are like much needed directions! Keep &#039;em coming.</description>
		<content:encoded><![CDATA[<p>Thanks. This is great. The BEA documentation is like a map showing you all the locations but with no indication of where you need to go. Posts like this are like much needed directions! Keep &#8216;em coming.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
