On 10/08/14 10:18, Igor Cicimov wrote:
On Wed, Oct 8, 2014 at 2:27 PM, dE <de.tec...@gmail.com <mailto:de.tec...@gmail.com>> wrote:

    On 10/08/14 05:18, Igor Cicimov wrote:

    On Wed, Oct 8, 2014 at 1:59 AM, dE <de.tec...@gmail.com
    <mailto:de.tec...@gmail.com>> wrote:

        On 10/07/14 18:12, Igor Cicimov wrote:


        On Tue, Oct 7, 2014 at 2:51 AM, dE <de.tec...@gmail.com
        <mailto:de.tec...@gmail.com>> wrote:

            Hi.

            I'm in a situation where I got 3 certificates

            server.pem -- the end user certificate which's sent by
            the server to the client.
            intermediate.pem -- server.pem is signed by
            intermediate.pem's private key.
            issuer.pem -- intermediate.pem is signed by issuer.pem's
            private key.

            combined.pem is created by --

            cat server.pem intermediate.pem > combined.pem

            Issuer.pem is installed in the web browser.

            The chain is working, I can verify this via the SSL
            command --

            cat intermediate.pem issuer.pem > cert_bundle.pem
            openssl verify -CAfile cert_bundle.pem server.pem
            server.pem: OK

            However the browsers (FF, Chrome, Konqueror and wget)
            fail authentication, claiming there are no certificates
            to verity server.pem's signature.

            I'm using Apache 2.4.10 with the following --

            SSLCertificateFile /tmp/combined.pem
            SSLCertificateKeyFile /tmp/server.key


        Try this:

        $ cat issuer.pem intermediate.pem > CA_chain.pem

          SSLCertificateFile server.pem
          SSLCertificateKeyFile server.key
          SSLCertificateChainFile CA_chain.pem


        Tried this on Apache 2.2 (SSLCertificateChainFile does not
        work with 2.4) with the same issue.

    Hmm in that case you have something mixed up or simply this can
    not work for self signed certificates since this is exactly what
    I'm using on Apache 2.2.24/26 on all our company web sites: a
    certificate signed by CA authority and a chain certificate file
    where the authorities CA and Intermediate certs have been
    concatenated.

    Can you show us the output of:

    openssl x509 -noout -in cert.pem -text

    for all your sertificates?


    $ openssl x509 -noout -in server.pem -text
    Certificate:
        Data:
            Version: 1 (0x0)
            Serial Number: 13192573755114198537 (0xb7156feedab91609)
        Signature Algorithm: sha1WithRSAEncryption
            Issuer: C=AU, ST=Some-State, O=intermediate, CN=intermediate
            Validity
                Not Before: Oct  7 08:43:42 2014 GMT
                Not After : Oct  2 08:43:42 2015 GMT
            Subject: C=AU, ST=Some-State, O=server, OU=IT, CN=server
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    Public-Key: (1024 bit)
                    Modulus:
    00:95:d3:1c:b7:ac:49:cc:38:2c:47:68:a2:b2:18:
    6d:76:80:3c:9d:a2:03:cc:4b:df:c0:6e:81:3f:7a:
    81:be:e1:38:34:5f:e0:1b:4e:e2:dc:a5:c6:d9:bb:
    b0:86:3b:98:3d:e7:03:42:c7:a4:cb:05:f0:96:80:
    e6:13:4e:bd:4f:e4:73:ea:72:7c:0c:90:23:7a:5e:
    7a:46:7d:e7:64:3c:1d:54:7a:e6:d9:87:9d:e3:f8:
    44:9c:df:08:64:d7:1d:a1:50:c3:fd:aa:9d:1b:84:
    3e:cd:1d:b9:81:ba:70:6a:95:c7:63:ab:1b:7b:1f:
                        26:3f:36:cc:29:f0:69:2b:79
                    Exponent: 65537 (0x10001)
        Signature Algorithm: sha1WithRSAEncryption
    4e:52:95:01:48:0f:c7:bd:51:6e:e6:9e:f6:3c:b4:16:10:a6:
    b5:75:2e:b2:49:bc:e7:50:46:d5:97:f1:e8:ed:b7:1d:b8:1a:
    33:2f:a3:7e:ca:41:1a:2a:74:4a:a3:81:04:99:c2:c8:76:ea:
    a6:91:8f:21:92:4c:62:ad:0c:57:43:73:b5:3c:0d:6c:82:cb:
    c1:c0:74:d8:ad:cb:12:1f:2f:9a:49:45:5a:06:05:fe:9a:13:
    b9:d3:e1:17:e6:67:88:18:fd:dc:c5:67:9a:94:9b:41:cf:0c:
    ca:88:4f:b5:fe:7e:e2:1e:61:db:4f:e1:bc:dc:f0:07:ad:1c:
             7c:fe


    $ openssl x509 -noout -in intermediate.pem -text
    Certificate:
        Data:
            Version: 1 (0x0)
            Serial Number: 11894061023072807904 (0xa510317ba912ebe0)
        Signature Algorithm: sha1WithRSAEncryption
            Issuer: C=AU, ST=Some-State, O=issuer, OU=signing, CN=issuer
            Validity
                Not Before: Oct  7 08:42:05 2014 GMT
                Not After : Oct  2 08:42:05 2015 GMT
            Subject: C=AU, ST=Some-State, O=intermediate, CN=intermediate
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    Public-Key: (1024 bit)
                    Modulus:
    00:b6:52:95:bf:09:25:1b:dc:28:d9:b1:a8:24:f8:
    f5:fb:f6:11:3e:22:74:f4:58:d1:dd:e3:4c:be:9a:
    df:dc:e6:3a:6d:50:75:0f:87:6c:b9:f6:8a:cb:c6:
    2d:df:2c:22:bf:17:f1:bd:94:78:8c:e4:ef:b3:82:
    df:23:00:30:07:d7:59:9b:44:9b:2a:77:5f:85:40:
    14:df:2f:89:66:7a:d5:e4:5a:d7:82:0c:bd:7c:6d:
    78:36:c6:d9:8e:c1:31:24:44:35:9b:9d:47:50:69:
    f2:d4:1b:5a:53:a5:e5:0e:d6:fc:ed:0e:60:15:b9:
                        3a:fd:f3:d1:f0:27:49:f4:c3
                    Exponent: 65537 (0x10001)
        Signature Algorithm: sha1WithRSAEncryption
    0c:5d:ce:59:75:d2:1a:cb:0c:2a:04:c3:73:3e:4a:42:d5:2d:
    0f:84:5e:38:2c:5f:51:43:3a:ff:6e:17:b6:b1:3b:93:01:29:
    5b:28:4f:a7:ac:51:e4:22:8e:31:72:f4:89:cc:3a:37:2a:95:
    dc:11:96:70:28:c7:31:25:9e:6e:7f:ce:67:e4:3d:06:6a:de:
    96:df:33:32:e9:98:02:1a:a5:c6:b4:55:dc:2f:4a:2a:44:ec:
    51:59:0c:a1:92:dd:83:1d:ad:2b:4f:63:a4:68:4a:7f:f6:8c:
    8e:44:01:d6:60:95:8a:f1:dc:d4:7f:81:bc:36:12:15:5b:78:
             57:8d


    $ openssl x509 -noout -in issuer.pem -text
    Certificate:
        Data:
            Version: 1 (0x0)
            Serial Number: 18284349327322698662 (0xfdbf0ed6ac38d3a6)
        Signature Algorithm: sha1WithRSAEncryption
            Issuer: C=AU, ST=Some-State, O=issuer, OU=signing, CN=issuer
            Validity
                Not Before: Oct  7 08:40:29 2014 GMT
                Not After : Oct  7 08:40:29 2015 GMT
            Subject: C=AU, ST=Some-State, O=issuer, OU=signing, CN=issuer
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    Public-Key: (1024 bit)
                    Modulus:
    00:bc:b7:71:69:93:a3:17:ed:29:e3:c6:32:ac:18:
    7d:ec:ea:88:0b:51:ef:4b:0e:16:7b:77:a8:cf:e2:
    72:4b:0c:94:e7:08:17:9f:a0:22:2c:ac:cb:0b:89:
    26:04:59:75:46:c2:56:b6:81:b5:1c:26:f1:eb:8d:
    af:17:08:25:14:72:2b:b0:91:f6:12:7f:a4:9f:41:
    e0:44:1a:1f:00:60:e2:35:e5:d8:39:4c:1f:3d:97:
    d5:76:4d:cf:70:c8:34:fd:06:06:6e:88:34:eb:49:
    af:b9:96:71:89:c4:9b:f4:14:f5:91:32:23:67:b9:
                        05:d0:5c:50:0f:8f:3f:c4:d5
                    Exponent: 65537 (0x10001)
        Signature Algorithm: sha1WithRSAEncryption
    3f:c6:9c:5d:28:43:3d:8a:9c:8c:24:96:19:ec:66:97:59:a9:
    70:79:c9:60:59:36:47:66:22:1a:cb:6e:8e:ac:dd:97:42:5c:
    96:30:40:77:60:49:3c:07:0d:02:b2:96:c6:8d:1f:ee:62:38:
    82:3c:ec:f4:d1:b2:4c:16:5e:84:fc:c8:ab:c6:b1:ac:99:82:
    9a:be:3f:e4:b9:58:fd:8b:fd:9f:1e:fb:9f:39:05:11:1e:62:
    f2:08:e9:ed:c5:dc:b3:ef:71:38:fa:1d:a7:9d:2d:96:c5:c9:
    40:b1:cb:30:45:2f:f4:80:5b:23:0a:bf:b5:a3:5a:b4:4f:4a:
             68:bf


And the output from the bellow command executed from the client you are running wget from:

openssl s_client -connect <your_server>:443

You should see some output with lots of information regarding the ssl connection, the server certificate and something like this:

---
Certificate chain
0 s:/C=AU/ST=New South Wales/L=Sydney/O=<MyCorporation> Pty Ltd/CN=*.<mydomain>.com
   i:/C=US/O=DigiCert Inc/CN=DigiCert Secure Server CA
 1 s:/C=US/O=DigiCert Inc/CN=DigiCert Secure Server CA
i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert <http://www.digicert.com/CN=DigiCert> Global Root CA 2 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert <http://www.digicert.com/CN=DigiCert> Global Root CA i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert <http://www.digicert.com/CN=DigiCert> Global Root CA

which will confirm the complete chain is being received by the client. If you see something like this at the bottom:

Verify return code: 19 (self signed certificate in certificate chain)

means you haven't properly imported the CA chain on the client. In case of wget or curl or other terminal tools this is done on OS level so you would need to consult the OS documentation about importing certificates.

You can find more about openssl tool set here: https://www.openssl.org/docs/apps/s_client.html, its perfect for ssl troubleshooting.



$ openssl s_client -connect server:443
gethostbyname failure
CONNECTED(00000003)
depth=2 C = AU, ST = Some-State, O = issuer, OU = signing, CN = issuer
verify error:num=19:self signed certificate in certificate chain
verify return:0
---
Certificate chain
 0 s:/C=AU/ST=Some-State/O=server/OU=IT/CN=server
   i:/C=AU/ST=Some-State/O=intermediate/CN=intermediate
 1 s:/C=AU/ST=Some-State/O=issuer/OU=signing/CN=issuer
   i:/C=AU/ST=Some-State/O=issuer/OU=signing/CN=issuer
 2 s:/C=AU/ST=Some-State/O=intermediate/CN=intermediate
   i:/C=AU/ST=Some-State/O=issuer/OU=signing/CN=issuer
---
Server certificate
-----BEGIN CERTIFICATE-----
MIICGDCCAYECCQC3FW/u2rkWCTANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJB
VTETMBEGA1UECAwKU29tZS1TdGF0ZTEVMBMGA1UECgwMaW50ZXJtZWRpYXRlMRUw
EwYDVQQDDAxpbnRlcm1lZGlhdGUwHhcNMTQxMDA3MDg0MzQyWhcNMTUxMDAyMDg0
MzQyWjBRMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEPMA0GA1UE
CgwGc2VydmVyMQswCQYDVQQLDAJJVDEPMA0GA1UEAwwGc2VydmVyMIGfMA0GCSqG
SIb3DQEBAQUAA4GNADCBiQKBgQCV0xy3rEnMOCxHaKKyGG12gDydogPMS9/AboE/
eoG+4Tg0X+AbTuLcpcbZu7CGO5g95wNCx6TLBfCWgOYTTr1P5HPqcnwMkCN6XnpG
fedkPB1UeubZh53j+ESc3whk1x2hUMP9qp0bhD7NHbmBunBqlcdjqxt7HyY/Nswp
8GkreQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAE5SlQFID8e9UW7mnvY8tBYQprV1
LrJJvOdQRtWX8ejttx24GjMvo37KQRoqdEqjgQSZwsh26qaRjyGSTGKtDFdDc7U8
DWyCy8HAdNityxIfL5pJRVoGBf6aE7nT4RfmZ4gY/dzFZ5qUm0HPDMqIT7X+fuIe
YdtP4bzc8AetHHz+
-----END CERTIFICATE-----
subject=/C=AU/ST=Some-State/O=server/OU=IT/CN=server
issuer=/C=AU/ST=Some-State/O=intermediate/CN=intermediate
---
No client certificate CA names sent
---
SSL handshake has read 2391 bytes and written 498 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-GCM-SHA384
Server public key is 1024 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : DHE-RSA-AES256-GCM-SHA384
Session-ID: FA13516B3E695D88CFC650899A5EE7D2DEE4D38DCDFD2848D688A0AAB4D2A90C
    Session-ID-ctx:
Master-Key: 5E39DF223E5A23B4088F2CE3D65A530F0D936860D8F94BB123E0483430CF3C42B7F7F40B246B6B7370551A2B702CB47A
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - b9 a3 67 f3 a1 e1 2f 40-90 64 09 db ef 26 4d b2 ..g.../@.d...&M.
    0010 - e8 a3 c2 25 30 d6 df af-8c 4d d3 19 20 83 bb c3 ...%0....M.. ...
    0020 - 6f a9 51 a3 3a 2f f5 43-1e a8 9d 1e 49 25 67 43 o.Q.:/.C....I%gC
    0030 - f0 05 3f 75 50 c8 49 2b-be 44 d2 72 58 14 2e f6 ..?uP.I+.D.rX...
    0040 - 55 a5 ba 0a 34 34 92 9f-cc 8b c1 30 55 f1 69 c0 U...44.....0U.i.
    0050 - df f8 3d 08 38 37 11 46-90 9d 88 6c ce 48 5d 79 ..=.87.F...l.H]y
    0060 - 96 bb 5a 23 56 4d e9 c3-2f 17 d9 11 45 47 fb 2b ..Z#VM../...EG.+
    0070 - 05 1a cb 92 52 13 52 e6-72 16 44 51 3f 66 90 88 ....R.R.r.DQ?f..
    0080 - f9 2e 46 ad 44 23 5b 75-f9 69 7c 6b c0 0f 83 42 ..F.D#[u.i|k...B
    0090 - 33 c0 c1 6b 6a f8 23 55-ee 18 0c 32 f9 5a 81 6b 3..kj.#U...2.Z.k
    00a0 - 1b 4e a4 42 14 56 54 66-1d 20 2e 53 95 df 24 f5 .N.B.VTf. .S..$.
    00b0 - c6 4c 8a e2 ed bc 21 d9-ef a1 8c fb 51 36 51 8d .L....!.....Q6Q.

    Start Time: 1412751118
    Timeout   : 300 (sec)
    Verify return code: 19 (self signed certificate in certificate chain)
---
DONE

I even tried copying issuer.pem to /etc/ssl/certs

With the same error no. 19 in the chain.

Thanks for this command. It's truly useful. That FF extension shows only 1 certificate received.

Reply via email to