[Mono-dev] Using SslStream

Sebastien Pouliot sebastien.pouliot at gmail.com
Tue Mar 30 16:00:16 EDT 2010


On Tue, 2010-03-30 at 11:15 -0800, Richter wrote:
> I have read that document. It references a makecert utility which is
> nowhere to be found on my system. I am running Debian
> "Squeeze" (testing version) and installed the latest available
> mono-complete package from the Synaptic Package Manager. The version
> number for the mono packages is 2.4.4. Is there a newer mono release
> that includes this utility or should it have been packaged with 2.4.4?

I'm not sure which .deb includes makecert - but the tool predates 2.4 by
many years. Anyway this tools is to create a certificates (e.g. a
self-signed certificate). 

What you need is the certmgr tool (again I don't know which debian
package will install it) to install your own self-signed certificate
into your trusted store.

> 
> On Tue, Mar 30, 2010 at 2:57 PM, Sebastien Pouliot [via Mono] <[hidden
> email]> wrote:
>         On Tue, 2010-03-30 at 10:51 -0800, Richter wrote: 
>         
>         
>         > I am attempting to develop an application for linux using
>         Mono that will run 
>         > as a server and accept client connections through TCP/IP
>         Sockets, using SSL 
>         > encryption and authentication. I am attempting to do so via
>         the SslStream 
>         > class, but am having problems getting it to work. This same
>         code works 
>         > perfectly running on the .NET Framework on Windows. I am
>         using a self-signed 
>         > certificate for testing purposes. 
>         > 
>         > TcpClient tcpClient //Assume it is initialized earlier... 
>         > 
>         > X509Certificate cert = new X509Certificate("filename",
>         "password"); 
>         > SslStream stream = new SslStream(tcpClient.GetStream(),
>         false); 
>         > stream.AuthenticateAsServer(cert, false, SslProtocols.Tls,
>         true); 
>         > 
>         > This always throws the following exception. 
>         > 
>         > System.IO.IOException: The authentication or decryption has
>         failed. ---> 
>         > Mono.Security.Protocol.Tls.TlsException: Server certificate
>         Private Key 
>         > unavailable. 
>         >   at 
>         >
>         Mono.Security.Protocol.Tls.Handshake.Server.TlsClientKeyExchange.ProcessAsTls1 
>         > () [0x000a7] in 
>         > /tmp/buildd/mono-2.4.4~svn151842/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake.Server/TlsClientKeyExchange.cs:112 
>         >   at
>         Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process
>         () 
>         > [0x00037] in 
>         > /tmp/buildd/mono-2.4.4~svn151842/mcs/class/Mono.Security/Mono.Security.Protocol.Tls.Handshake/HandshakeMessage.cs:105 
>         >   at (wrapper remoting-invoke-with-check) 
>         >
>         Mono.Security.Protocol.Tls.Handshake.HandshakeMessage:Process
>         () 
>         >   at
>         Mono.Security.Protocol.Tls.ServerRecordProtocol.ProcessHandshakeMessage 
>         > (Mono.Security.Protocol.Tls.TlsStream handMsg) [0x0002a] in 
>         > /tmp/buildd/mono-2.4.4~svn151842/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/ServerRecordProtocol.cs:74 
>         >   at
>         Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback 
>         > (IAsyncResult asyncResult) [0x00127] in 
>         > /tmp/buildd/mono-2.4.4~svn151842/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/RecordProtocol.cs:397 
>         >   --- End of inner exception stack trace --- 
>         >   at
>         Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback 
>         > (IAsyncResult asyncResult) [0x0002a] in 
>         > /tmp/buildd/mono-2.4.4~svn151842/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslStreamBase.cs:102 
>         > 
>         > 
>         > I have tried this with the following certificate formats all
>         generated 
>         > through various methods using
>         openssl: .cer, .pem, .crt, .p12 (with private 
>         > key embedded). As I said, it is working on Windows, but I
>         can't figure out 
>         > how to make it work on my linux box and I can't seem to find
>         much about this 
>         > problem online. Any help would be appreciated. 
>         
>         
>         Google "mono ssl" and your first link will be the Mono
>         Security FAQ 
>         which will tell you how to trust your own self-signed
>         certificate. 
>         
>         Have fun ;-) 
>         Sebastien 
>         
>         
>         _______________________________________________ 
>         Mono-devel-list mailing list 
>         
>         [hidden email] 
>         http://lists.ximian.com/mailman/listinfo/mono-devel-list
>         
> 
> 
> 
> ______________________________________________________________________
> View this message in context: Re: Using SslStream
> Sent from the Mono - Dev mailing list archive at Nabble.com.
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list




More information about the Mono-devel-list mailing list