> On Thu, 26 Mar 2015 08:30:23 +0100
> mxb wrote:
>
>> >
>> > Thank you for the suggestion. I was not aware of "pound."
>>
>> I?d rather go for relayd. Which is out of the box. No need to install ?yet
>> another port and make sure it is up2date?.
>
> httpd is based on relayd code which would reduce the scope of the test
> (a cluestick).
>
>>> When I try "https://10.0.128.67/index.html" - I get a nice message from
>>> firefox asking me to accept a problem certificate (this was expected,
>>> the certificate is the "correct" one), and when I do accept the
>>> certificate, I get the index page.
>
>>> So, I am not sure what is wrong, but it appears httpd is not responding
>>> to https requests, even with the "listen on tls" line in the
>>> configuration file.
>
>>> Is there anything for me to look at/consider in trying to correct this?
>
> I don't understand what you are saying by '"correct" one' but to me this
> suggests you have issues even with pound and perhaps I would try
> another browser or firefox on another client and try another
> certificate perhaps from another CA or install a newer snapshot or
> re-install a release before wondering if there is an issue with httpd
> or libressl whilst monitoring the list to see if anyone else has an
> issue?
>
> Thankfully re-install on OpenBSD is super quick but you do have to
> follow www.openbsd.org/current.html for snapshots and I think
> www.openbsd.org/plus.html for release upgrades (4.5 -> 4.6 etc.)
>
>
Hello:
I started httpd as: httpd -d -v -v -v -v -v -v -v
And I see:
startup
socket_rlimit: max open files 1024
socket_rlimit: max open files 1024
server_tls_load_keypair: using certificate /etc/ssl/server.crt
server_tls_load_keypair: using private key /etc/ssl/private/server.key
socket_rlimit: max open files 1024
server_privinit: adding server default
server_privinit: adding server default
server_launch: running server default
server_launch: running server default
server_launch: running server default
but, if I try to connect using https, there is no output on the terminal
indicating that httpd is doing anything at all.
Ctrl-c to kill the server gives:
^C
logger exiting, pid 28447
server exiting, pid 23445
server exiting, pid 20653
server exiting, pid 12690
parent terminating, pid 29581
So, it seems that httpd does, in fact, see the cert and key, but does nothing
with them.
(the cert is PEM encoded)
So, I also tried:
openssl s_server -accept 443 -www -cert /etc/ssl/server.crt -key
/etc/ssl/private/server.key
and then connected to the machine with a browser.
This connection works without an issue.
The output to the browser from openssl s_server is:
s_server -accept 443 -www -cert /etc/ssl/server.crt -key
/etc/ssl/private/server.key
Secure Renegotiation IS supported
Ciphers supported in s_server binary
TLSv1/SSLv3:ECDHE-ECDSA-CHACHA20-POLY1305TLSv1/SSLv3:ECDHE-RSA-CHACHA20-POLY1305
TLSv1/SSLv3:DHE-RSA-CHACHA20-POLY1305TLSv1/SSLv3:ECDHE-RSA-AES256-GCM-SHA384
TLSv1/SSLv3:ECDHE-ECDSA-AES256-GCM-SHA384TLSv1/SSLv3:ECDHE-RSA-AES256-SHA384
TLSv1/SSLv3:ECDHE-ECDSA-AES256-SHA384TLSv1/SSLv3:ECDHE-RSA-AES256-SHA
TLSv1/SSLv3:ECDHE-ECDSA-AES256-SHA TLSv1/SSLv3:DHE-DSS-AES256-GCM-SHA384
TLSv1/SSLv3:DHE-RSA-AES256-GCM-SHA384TLSv1/SSLv3:DHE-RSA-AES256-SHA256
TLSv1/SSLv3:DHE-DSS-AES256-SHA256 TLSv1/SSLv3:DHE-RSA-AES256-SHA
TLSv1/SSLv3:DHE-DSS-AES256-SHA TLSv1/SSLv3:GOST2012256-GOST89-GOST89
TLSv1/SSLv3:DHE-RSA-CAMELLIA256-SHA256TLSv1/SSLv3:DHE-DSS-CAMELLIA256-SHA256
TLSv1/SSLv3:DHE-RSA-CAMELLIA256-SHA TLSv1/SSLv3:DHE-DSS-CAMELLIA256-SHA
TLSv1/SSLv3:GOST2001-GOST89-GOST89 TLSv1/SSLv3:ECDH-RSA-AES256-GCM-SHA384
TLSv1/SSLv3:ECDH-ECDSA-AES256-GCM-SHA384TLSv1/SSLv3:ECDH-RSA-AES256-SHA384
TLSv1/SSLv3:ECDH-ECDSA-AES256-SHA384 TLSv1/SSLv3:ECDH-RSA-AES256-SHA
TLSv1/SSLv3:ECDH-ECDSA-AES256-SHA TLSv1/SSLv3:AES256-GCM-SHA384
TLSv1/SSLv3:AES256-SHA256 TLSv1/SSLv3:AES256-SHA
TLSv1/SSLv3:CAMELLIA256-SHA256 TLSv1/SSLv3:CAMELLIA256-SHA
TLSv1/SSLv3:ECDHE-RSA-AES128-GCM-SHA256TLSv1/SSLv3:ECDHE-ECDSA-AES128-GCM-SHA256
TLSv1/SSLv3:ECDHE-RSA-AES128-SHA256 TLSv1/SSLv3:ECDHE-ECDSA-AES128-SHA256
TLSv1/SSLv3:ECDHE-RSA-AES128-SHA TLSv1/SSLv3:ECDHE-ECDSA-AES128-SHA
TLSv1/SSLv3:DHE-DSS-AES128-GCM-SHA256TLSv1/SSLv3:DHE-RSA-AES128-GCM-SHA256
TLSv1/SSLv3:DHE-RSA-AES128-SHA256 TLSv1/SSLv3:DHE-DSS-AES128-SHA256
TLSv1/SSLv3:DHE-RSA-AES128-SHA TLSv1/SSLv3:DHE-DSS-AES128-SHA
TLSv1/SSLv3:DHE-RSA-CAMELLIA128-SHA256TLSv1/SSLv3:DHE-DSS-CAMELLIA128-SHA256
TLSv1/SSLv3:DHE-RSA-CAMELLIA128-SHA TLSv1/SSLv3:DHE-DSS-CAMELLIA128-SHA
TLSv1/SSLv3:ECDH-RSA-AES128-GCM-SHA256TLSv1/SSLv3:ECDH-ECDSA-AES128-GCM-SHA256
TLSv1/SSLv3:ECDH-RSA-AES128-SHA256 TLSv1/SSLv3:ECDH-ECDSA-AES128-SHA256
TLSv1/SSLv3:ECDH-RSA-AES128-SHA TLSv1/SSLv3:ECDH-ECDSA-AES128-SHA
TLSv1/SSLv3:AES128-GCM-SHA256 TLSv1/SSLv3:AES128-SHA256
TLSv1/SSLv3:AES128-SHA TLSv1/SSLv3:CAMELLIA128-SHA256
TLSv1/SSLv3:CAMELLIA128-SHA TLSv1/SSLv3:IDEA-CBC-SHA
TLSv1/SSLv3:ECDHE-RSA-RC4-SHA TLSv1/SSLv3:ECDHE-ECDSA-RC4-SHA
TLSv1/SSLv3:ECDH-RSA-RC4-SHA TLSv1/SSLv3:ECDH-ECDSA-RC4-SHA
TLSv1/SSLv3:RC4-SHA TLSv1/SSLv3:RC4-MD5
TLSv1/SSLv3:ECDHE-RSA-DES-CBC3-SHA TLSv1/SSLv3:ECDHE-ECDSA-DES-CBC3-SHA
TLSv1/SSLv3:EDH-RSA-DES-CBC3-SHA TLSv1/SSLv3:EDH-DSS-DES-CBC3-SHA
TLSv1/SSLv3:ECDH-RSA-DES-CBC3-SHA TLSv1/SSLv3:ECDH-ECDSA-DES-CBC3-SHA
TLSv1/SSLv3:DES-CBC3-SHA TLSv1/SSLv3:EDH-RSA-DES-CBC-SHA
TLSv1/SSLv3:EDH-DSS-DES-CBC-SHA TLSv1/SSLv3:DES-CBC-SHA
---
Ciphers common between both SSL end points:
ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES256-SHA
ECDHE-ECDSA-AES128-SHA ECDHE-RSA-AES128-SHA ECDHE-RSA-AES256-SHA
ECDHE-ECDSA-RC4-SHA ECDHE-RSA-RC4-SHA DHE-RSA-AES128-SHA
DHE-DSS-AES128-SHA DHE-RSA-AES256-SHA AES128-SHA
AES256-SHA DES-CBC3-SHA RC4-SHA
RC4-MD5
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES128-GCM-SHA256
Session-ID:
Session-ID-ctx: 01000000
Master-Key:
1BBE416FBC2A5BC14C957C90A7D2D18DC916D1AE6366F14FC453BB1E383509E113F0B04754FFD09FC786D04E2CB79343
Start Time: 1427434365
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
0 items in the session cache
0 client connects (SSL_connect())
0 client renegotiates (SSL_connect())
0 client connects that finished
2 server accepts (SSL_accept())
0 server renegotiates (SSL_accept())
2 server accepts that finished
0 session cache hits
0 session cache misses
0 session cache timeouts
0 callback cache hits
0 cache full overflows (128 allowed)
---
no client certificate available
I am not really sure what this all means, but, from my simplistic point of
view, it seems that my cert and key:
1. work when they are installed on another machine running apache and
successfully serve https pages
2. they are correctly used by pound (on the "problem" machine) when it listens
and accepts https connections which it then forwards
to httpd
3. they are recognized and used by openssl s_server (on the "problem" machine)
and are able to accept https connections
And, finally:
4. they DO NOT work when loaded by httpd
I will be the first to admit that I don't really "know" much about public key
cryptography and how openssl implements things. But,
being simple, it seems to me that there are really only two possibilities.
Either apache, pound, and openssl s_server are all flawed and are incorrectly
using an invalid certificate/key pair for encryption;
or there is a problem in httpd and how it deals with certificates and https.
I will try things again tomorrow (later today) and see if I can get any info
with tcpdump.
If there is anything else to try, please let me know.
Thanks
Ted
[demime 1.01d removed an attachment of type application/x-pkcs7-signature which
had a name of smime.p7s]