Here&#39;s a quick solution:<div><br></div><div>Just have your app load the client certificate on startup, extract the common name, and add a header to your messages. It should be trivial to do this in most programming languages.</div>

<div><br></div><div>The server is already validating that the certificate is valid at the connection level, so there&#39;s no need for further verification.<br><div><br></div><div>Mark Steele<br>Director of development<br>

Bering Media Inc.<br><br>
<br><br><div class="gmail_quote">On Mon, Jun 28, 2010 at 2:47 PM, Nathaniel Haggard <span dir="ltr">&lt;<a href="mailto:natester@gmail.com">natester@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

On Mon, Jun 28, 2010 at 9:56 AM, Matthias Radestock<br>
&lt;<a href="mailto:matthias@rabbitmq.com">matthias@rabbitmq.com</a>&gt; wrote:<br>
&gt; Lionel,<br>
&gt;<br>
&gt; Lionel Cons wrote:<br>
&gt;&gt;<br>
&gt;&gt; Matthew Sackman &lt;<a href="mailto:matthew@rabbitmq.com">matthew@rabbitmq.com</a>&gt; writes:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Thu, Jun 24, 2010 at 03:13:20PM -0600, Nathaniel Haggard wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; It would be nice if rabbitmq set a header in messages with some<br>
&gt;&gt;&gt;&gt; metadata from the x509 certificate used to establish the ssl<br>
&gt;&gt;&gt;&gt; connection.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Err, why?<br>
&gt;&gt;<br>
&gt;&gt; FWIW, we currently rely on this functionality: we use X.509 for<br>
&gt;&gt; authetication and we need to track down who sent a given message<br>
&gt;&gt; (think JMSXUserID as per <a href="http://activemq.apache.org/jmsxuserid.html" target="_blank">http://activemq.apache.org/jmsxuserid.html</a>).<br>
&gt;<br>
&gt; Couldn&#39;t you simply get the sender to sign the message and the recipient to<br>
&gt; verify the signature? That requires the recipients to know the public keys<br>
&gt; of the senders, but I suspect in most systems where recipients care about<br>
&gt; the sender identity that would not be hard to arrange.<br>
&gt;<br>
&gt; Matthias.<br>
<br>
For my use case I could do that, but RabbitMQ is already verifying<br>
client certificates.  RabbitMQ is already verifying client<br>
certificates.  See<br>
<br>
[<br>
 {rabbit, [<br>
    {ssl_listeners, [{&quot;0.0.0.0&quot;,5671}]},<br>
    {ssl_options, [{cacertfile,&quot;/opt/rabbitmq/keys/ca.crt&quot;},<br>
                   {certfile,&quot;/opt/rabbitmq/keys/x.x.x.x.crt&quot;},<br>
                   {keyfile,&quot;/opt/rabbitmq/keys/x.x.x.x.key&quot;},<br>
                   {verify,verify_peer},<br>
                   {fail_if_no_peer_cert,true}]}<br>
  ]}<br>
].<br>
<br>
We plan to have thousands of clients connecting to RabbitMQ each with<br>
a different certificate and the same username.  Someone on this list<br>
didn&#39;t recommend managing that many users.<br>
<br>
Ideally Rabbit would pass along CNAME from a producer and the consumer<br>
would verify CNAME is good.<br>
<br>
(Sorry if you got this twice Matthias)<br>
_______________________________________________<br>
rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a><br>
<a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
</blockquote></div><br></div></div>