On 10/08/14 14:33, Igor Cicimov wrote:


On Wed, Oct 8, 2014 at 6:03 PM, dE <de.tec...@gmail.com <mailto:de.tec...@gmail.com>> wrote:

    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.


You need to point the tool to the CA path like this:

$ openssl s_client -connect server:443 -CApath /etc/ssl/certs

then the cert will get properly validated.


I pointed it to the location where all of my relevant *.pem is there And I still get error 19.

Reply via email to