That didn't work. I immediately got an error from the server :
SSL3_GET_CLIENT_HELLO: no shared cipher.
Do you know what my original error meant:
SSL_BYTES_TO_CIPHER_LIST:scsv received when renegotiating
Maybe if I know what it is referring to I can track down the issue. There
isn't much posted on the net about it.
On , castre...@gmail.com wrote:
Hi Eriwin,
Your response does make sense but I need to clarify.
I created a CA Certifcate and a private key.( CA.cert and CAPrivate.key)
I then created a server certificate request ( server.csr and server.key)
and signed it with the CA's private key, creating the
following 2 files: server.crt, and server.pem.
Now currently in my program the server-side is loading the server.pem
file and the server.key file.
The client-side is loading the CA.cert.
So if I understand what you are saying above. I need to reverse the
loading ( below is what I currently have in my code:
if(ac.user() == server)
{
_ssl_context = new ssl::context(ssl::method_sslv3, ssl::role_server);
_ssl_context->set_certificate("ssl\\subexec\\certs\\01.pem",
"ssl\\subexec\\private\\server.key");
}
else //client
{
_ssl_context = new ssl::context(ssl::method_sslv3, ssl::role_client);
_ssl_context->set_ca_certificate("ssl\\subexec\\certs\\ca.crt");
}
Are you saying it should be :
if(ac.user() == client)
{
_ssl_context = new ssl::context(ssl::method_sslv3, ssl::role_server);
_ssl_context->set_certificate("ssl\\subexec\\certs\\01.pem",
"ssl\\subexec\\private\\server.key");
//_ssl_context->set_ca_certificate("ssl\\subexec\\certs\\ca.crt");
}
else //client
{
_ssl_context = new ssl::context(ssl::method_sslv3, ssl::role_client);
_ssl_context->set_ca_certificate("ssl\\subexec\\certs\\ca.crt");
}
On , Erwin Himawan ehima...@gmail.com> wrote:
> You metion that:
> Server loads its server certificate and private key ( self-signed by a
CA that I created).
>
> I would liem to clarify: the server cert is a self signed cert? or the
CA cert is a self signed cert?
>
>
>
> If the server cert is a self signed cert, the server is actually the
ca, which in this case, the client needs the server slef signed cert.
>
> If the server is not a self-signed cert, make sure that the ca
self-signed cert can verify the server cert. You can use the openssl
verify CLI to do this. If you can then give the ca cert to client. If i
remember correctly, when you set the verify peer to none, the server does
not do cert-based auth on the client. however, tls spec specifies that
client must do cert-based auth on the server. so, server must send the
client its cert.
>
>
>
> hopefully, my reply make sense.
>
>
> On Wed, Jul 27, 2011 at 3:52 PM, castre...@gmail.com> wrote:
>
>
> I need some help.
>
>
>
>
>
> I am basically stuck and don't know how to fix the handshake and must
be missing something.
>
>
> Perhaps it is something with the certificates.
>
>
>
>
>
> I have a server certificate/privatekey and a CA certificate.
>
>
>
>
>
> Server loads its server certificate and private key ( self-signed by a
CA that I created).
>
>
> The client loads the CA certificate.
>
>
>
>
>
> Using memory buffers and blocking IO.
>
>
>
>
>
> I begin the handshake by the client intiating hello message.
>
>
> The server reads message, and data is put in its ssl output. This is
sent back to client.
>
>
> The client read the data ( SSL_read) and data it populated in the ssl
output. This is sent back to the server. ( it is waiting for more input
from server)
>
>
> The server reads the data (SSL_read) and nothing is generated in
out....but it is waiting for more information from client.
>
>
>
>
>
> Basically I am at a stale mate now.
>
>
> What information am I missing.
>
>
> When I go and look at what state the client is in it say it is
UNKWN..........what does this imply????
>
>
>
>
>
> Do I need a client certificate even though I have programmed the server
to be a VERIFY_PEER_NONE?
>
>
>
>
>
> Does anybody have any references/books I can go get to help me with
this issue.......I am completely lost and confused.
>
>
>
>
>
> Note: I am currently working on windows.
>
>
>
>