Package: ejabberd
Version: 18.12.1-2
Severity: normal

Dear Maintainer,

I have been running a Debian ejabberd server since Debian squeeze and
every dist-upgrade since.  In 2014 I setup a private CA using GnuTLS and
had configured ejabberd (version 2.1.5 at the time) to use these
certificates.  Subsequent upgrades through wheezy, jessie, and stretch,
these certificates continued to work, until buster...

  2019-07-21 17:02:14.904 [warning] <0.406.0>@ejabberd_pkix:log_warnings:397 
Invalid certificate in /etc/ssl/certs/unzane/nyarlathotep-rsa-cert.pem: at line 
1: certificate was not signed by its issuer certificate

This message isn't true - if I inspect the certificates using GnuTLS
certtool or OpenSSL x509 tools, the CA signatures are in place.
Furthermore these same certificate files are used by apache2, which had
no trouble with the buster upgrade.  Additionally, when I use OpenSSL's
s_client tool and compare output between port 443 (apache2) and 5223
(ejabberd), they both present the full chain of trust (root CA,
intermediate CA, and host certificates), however ejabberd does something
wicked with the host certificate fingerprint - it's been recomputed to
some random value (doesn't match the PEM file).

After a few days of frustration and every imaginable tweak to
ejabberd.yml, I decided to experiment with re-issuing a certificate
using OpenSSL tools.  This worked, however I cannot commit to using this
experimental process until I abandon my private CA setup.

Attached is a shell script which runs GnuTLS certtool to create a root
CA, intermediate CA, and host certificates in a manner closely
resembling the certificates I had been using since 2014.  The script
depends on four template files, and there is also a log attached showing
what running it looks like (including certificate info dumps).

The resulting certificates can be added to ejabberd.yml and exhibit the
broken signature behavior:

  certfiles:
    - "/etc/ejabberd/ejabberd-cert.pem"
    - "/etc/ejabberd/ejabberd-key.pem"
    - "/etc/ejabberd/private-int-cert.pem"
    - "/etc/ejabberd/private-ca-cert.pem"

Then run a command like OpenSSL's s_client and see the signature error:

  $ openssl s_client \
        -CAfile private-ca-cert.pem \
        -connect ejabberd.example.com:5223 \
        -showcerts < /dev/null
  ...
      Verify return code: 7 (certificate signature failure)
  ...

Furthermore the fingerprint seen on the wire is different than what is
in the ejabberd-cert.pem file.

-- System Information:
Debian Release: 10.0
  APT prefers stable
  APT policy: (701, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-5-cloud-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages ejabberd depends on:
ii  adduser                        3.118
ii  debconf [debconf-2.0]          1.5.71
ii  erlang-asn1                    1:21.2.6+dfsg-1
ii  erlang-base [erlang-abi-17.0]  1:21.2.6+dfsg-1
ii  erlang-base64url               1.0-3
ii  erlang-crypto                  1:21.2.6+dfsg-1
ii  erlang-goldrush                0.2.0-1
ii  erlang-inets                   1:21.2.6+dfsg-1
ii  erlang-jiffy                   0.14.11+dfsg-4
ii  erlang-jose                    1.9.0-1
ii  erlang-lager                   3.6.8-1
ii  erlang-mnesia                  1:21.2.6+dfsg-1
ii  erlang-odbc                    1:21.2.6+dfsg-1
ii  erlang-os-mon                  1:21.2.6+dfsg-1
ii  erlang-p1-cache-tab            1.0.17-1
ii  erlang-p1-eimp                 1.0.9-1
ii  erlang-p1-iconv                1.0.10-1
ii  erlang-p1-pkix                 1.0.0-3
ii  erlang-p1-stringprep           1.0.14-1
ii  erlang-p1-tls                  1.0.26-1
ii  erlang-p1-utils                1.0.13-1
ii  erlang-p1-xml                  1.1.34-1
ii  erlang-p1-xmpp                 1.2.8-1
ii  erlang-p1-yaml                 1.0.17-1
ii  erlang-p1-zlib                 1.0.4-3
ii  erlang-public-key              1:21.2.6+dfsg-1
ii  erlang-ssl                     1:21.2.6+dfsg-1
ii  erlang-syntax-tools            1:21.2.6+dfsg-1
ii  erlang-xmerl                   1:21.2.6+dfsg-1
ii  lsb-base                       10.2019051400
ii  openssl                        1.1.1c-1
ii  ucf                            3.0038+nmu1

ejabberd recommends no packages.

Versions of packages ejabberd suggests:
ii  apparmor                         2.13.2-10
ii  apparmor-utils                   2.13.2-10
ii  ejabberd-contrib                 0.2018.12.10~dfsg0-3
pn  erlang-luerl                     <none>
ii  erlang-p1-mysql                  1.0.8-1
pn  erlang-p1-oauth2                 <none>
ii  erlang-p1-pam                    1.0.4-3
ii  erlang-p1-pgsql                  1.1.6-2
ii  erlang-p1-sip                    1.0.27-1
pn  erlang-p1-sqlite3                <none>
ii  erlang-p1-stun                   1.0.26-1
pn  erlang-redis-client              <none>
ii  imagemagick                      8:6.9.10.23+dfsg-2.1
ii  imagemagick-6.q16 [imagemagick]  8:6.9.10.23+dfsg-2.1
pn  libunix-syslog-perl              <none>
pn  yamllint                         <none>

-- Configuration Files:
/etc/apparmor.d/usr.sbin.ejabberdctl changed [not included]
/etc/default/ejabberd changed [not included]
/etc/ejabberd/inetrc [Errno 13] Permission denied: '/etc/ejabberd/inetrc'
/etc/ejabberd/modules.d/README.modules [Errno 13] Permission denied: 
'/etc/ejabberd/modules.d/README.modules'

-- debconf information:
  ejabberd/invalidpreseed:
  ejabberd/invaliduser:
  ejabberd/invalidhostname:
* ejabberd/erlangopts: -env ERL_CRASH_DUMP_BYTES 0
* ejabberd/nodenamechanges:
* ejabberd/user:
  ejabberd/nomatch:
* ejabberd/hostname: unzane.com

-- 
Gerald Turner <gtur...@unzane.com>        Encrypted mail preferred!
OpenPGP: 4096R / CA89 B27A 30FA 66C5 1B80  3858 EC94 2276 FDB8 716D
#!/bin/sh

set -e

read -p "Password: " password

export GNUTLS_PIN="${password}"
export GNUTLS_SO_PIN="${password}"

certtool="certtool --verbose --sec-param=ultra"
certtool_pw="${certtool} --password=${password}"

if [ ! -d public ] ; then
  mkdir -m 755 public
fi

if [ ! -d private ] ; then
  mkdir -m 750 private
fi

gen_serial () {
  local current rand next
  if [ -e serial.template ] ; then
    current=$(sed 's/^serial = //' serial.template)
  else
    current=$(hexdump -n 3 -e '/2 "%u"' /dev/urandom)
  fi
  rand=$(hexdump -n 2 -e '/2 "%u"' /dev/urandom)
  next=$((${current} + ${rand}))
  echo "serial = ${next}" >| serial.template
}

gen_priv () {
  local name type bits hash pw
  name=$1
  type=$2
  bits=$3
  hash=$4
  pw=$5

  if [ ! -e private/${name}-key.pem ] ; then
    echo Generating ${name}-key.pem...
    if [ $pw -eq 1 ] ; then
      ${certtool_pw} --generate-privkey \
        --outfile private/${name}-key.pem \
        --${type} \
        --bits ${bits} \
        --hash ${hash}
    else
      ${certtool} --generate-privkey \
        --outfile private/${name}-key.pem \
        --${type} \
        --bits ${bits} \
        --hash ${hash}
    fi
    chmod 440 private/${name}-key.pem
  fi
}

gen_self () {
  local name type bits hash pw
  name=$1
  type=$2
  bits=$3
  hash=$4
  pw=$5

  if [ ! -e public/${name}-cert.pem ] ; then
    gen_priv ${name} ${type} ${bits} ${hash} ${pw}

    echo Generating ${name}-cert.pem...

    ${certtool_pw} --generate-self-signed \
      --load-privkey private/${name}-key.pem \
      --template ${name}.template \
      --outfile public/${name}-cert.pem \
      --hash ${hash}
    chmod 444 public/${name}-cert.pem
  fi
}

gen_crl () {
  local name type bits hash pw
  name=$1
  type=$2
  bits=$3
  hash=$4
  pw=$5

  if [ ! -e public/${name}-crl.pem ] ; then
    gen_self ${name} ${type} ${bits} ${hash} ${pw}

    echo Generating ${name}-crl.pem...

    ${certtool_pw} --generate-crl \
      --load-ca-privkey private/${name}-key.pem \
      --load-ca-certificate public/${name}-cert.pem \
      --template ${name}-crl.template \
      --outfile public/${name}-crl.pem \
      --hash ${hash}
    chmod 444 public/${name}-crl.pem
  fi
}

gen_req () {
  local name type bits hash pw template
  name=$1
  type=$2
  bits=$3
  hash=$4
  pw=$5

  if [ ! -e private/${name}-req.pem ] ; then
    gen_priv ${name} ${type} ${bits} ${hash} ${pw}

    echo Generating ${name}-req.pem...

    template=${name}.template
    if [ ! -e ${template} ] ; then
      template=${name%-*}.template
    fi

    gen_serial
    cp serial.template ${template}.tmp
    cat ${template} >> ${template}.tmp

    ${certtool_pw} --generate-request \
      --load-privkey private/${name}-key.pem \
      --template ${template}.tmp \
      --outfile private/${name}-req.pem \
      --hash ${hash}
    chmod 444 private/${name}-req.pem

    rm ${template}.tmp
  fi
}

gen_cert () {
  local name type bits hash pw ca_name template
  name=$1
  type=$2
  bits=$3
  hash=$4
  pw=$5
  ca_name=$6

  if [ ! -e public/${name}-cert.pem ] ; then
    gen_req ${name} ${type} ${bits} ${hash} ${pw}

    echo Generating ${name}-cert.pem

    template=${name}.template
    if [ ! -e ${template} ] ; then
      template=${name%-*}.template
    fi

    gen_serial
    cp serial.template ${template}.tmp
    cat ${template} >> ${template}.tmp

    ${certtool_pw} --generate-certificate \
      --load-request private/${name}-req.pem \
      --load-ca-certificate public/${ca_name}-cert.pem \
      --load-ca-privkey private/${ca_name}-key.pem \
      --template ${template}.tmp \
      --outfile public/${name}-cert.pem \
      --hash ${hash}
    chmod 444 public/${name}-cert.pem

    rm ${template}.tmp
  fi
}

gen_crl private-ca rsa 8192 SHA256 1

gen_cert private-int rsa 4096 SHA256 1 private-ca

gen_cert ejabberd rsa 4096 SHA256 0 private-int
crl_number = 0
crl_next_update = -1
serial = 0
organization = "Example"
cn = "Private Certificate Authority"
activation_date = "2014-04-07 10:27:00 PDT"
expiration_date = "@2147483647"
crl_dist_points = "https://www.example.com/x509/revocation.pem";
policy1 = 1.3.6.1.4.1.43664.3280.33.0
policy1_url = "https://www.example.com/x509/policy.txt";
ca
cert_signing_key
crl_signing_key
organization = "Example"
cn = "Private Intermediate Certificate Authority"
activation_date = "2014-04-07 10:27:00 PDT"
expiration_date = "@2147483647"
ca
cert_signing_key
cn = "ejabberd.example.com"
dns_name = "ejabberd.example.com"
dns_name = "example.com"
dns_name = "jabber.example.com"
dns_name = "*.jabber.example.com"
activation_date = "2019-07-24 09:45:00 PDT"
expiration_date = "@2147483647"
tls_www_client
tls_www_server
signing_key
encryption_key
ipsec_ike_key
Generating private-ca-key.pem...
Assuming PKCS #8 format...
** Note: You may use '--sec-param Ultra' instead of '--bits 8192'
Generating a 8192 bit RSA private key...
Generating private-ca-cert.pem...
Generating a self signed certificate...
X.509 Certificate Information:
        Version: 3
        Serial Number (hex): 00
        Validity:
                Not Before: Mon Apr 07 17:27:00 UTC 2014
                Not After: Tue Jan 19 03:14:07 UTC 2038
        Subject: O=Example,CN=Private Certificate Authority
        Subject Public Key Algorithm: RSA
        Algorithm Security Level: Ultra (8192 bits)
                Modulus (bits 8192):
                        00:b6:6f:9b:b1:63:ea:d3:3c:ed:1f:c3:29:3d:d0:3b
                        ed:35:f9:6c:82:4c:d4:42:2b:ab:8a:e3:9c:a9:47:77
                        a6:12:c4:d3:1d:5e:69:ac:43:31:56:62:3f:20:7e:eb
                        52:87:d6:0e:92:bf:d3:e1:fd:94:c2:35:a3:25:e4:fc
                        f2:ef:42:04:ba:8d:f8:9e:1e:eb:0c:30:42:fc:fb:fa
                        24:14:2e:ec:63:76:1c:66:4f:f7:eb:2c:af:f4:cb:e2
                        9a:90:01:69:70:1b:64:b8:28:a5:9f:d2:2e:f2:72:6e
                        16:ee:6c:2a:26:0c:7b:4b:2e:66:be:d4:bb:f6:e4:d0
                        15:d6:f0:e6:1e:64:9a:4f:ed:df:7f:37:31:c8:05:99
                        94:ca:1f:83:ba:44:fa:41:d7:2b:e7:01:35:49:6a:af
                        b8:53:43:31:40:50:20:75:e0:ca:34:da:f9:db:2e:65
                        a5:1f:f9:65:cc:68:c9:19:df:3d:32:f7:24:9d:c8:c7
                        2c:6f:3e:55:8f:67:28:7f:ab:cf:65:07:ec:d4:c6:7a
                        2f:15:13:1f:de:a8:1b:f4:3c:0c:3e:d4:24:da:12:76
                        b7:a9:d9:d2:35:94:0a:98:2a:63:54:ed:e5:53:69:ab
                        8e:53:a4:aa:a7:10:28:68:c5:c1:2f:40:82:dc:ea:7f
                        3b:d9:4b:f5:61:3e:5f:d1:c7:49:c3:6f:b2:e9:f8:b4
                        c6:ee:04:41:76:1e:a4:83:ab:3b:a3:32:3a:23:f0:f4
                        5c:8c:24:1b:06:a0:f2:ce:35:8a:d9:ab:fd:04:c0:ae
                        1b:7d:e5:91:7b:ff:b0:e0:ce:02:48:18:fa:f1:ba:1c
                        86:d4:e6:c6:58:e0:af:d0:cc:92:e3:38:c4:f8:5e:e6
                        13:a9:24:83:59:3d:2f:4f:e8:43:6b:cf:67:a1:6f:6f
                        1a:92:0e:7f:1a:d0:78:4a:b1:3c:fc:aa:f1:b3:15:7e
                        86:c8:d3:42:37:89:fd:43:61:bd:e4:8f:d3:40:be:52
                        23:93:2d:7f:0b:7a:da:f1:c9:b7:15:1b:7d:5a:d5:32
                        a3:29:0a:1f:3a:e2:bb:6f:12:dd:e1:3e:3e:cb:e7:3e
                        79:f3:42:ce:3d:a5:fb:fc:c0:97:6d:a4:c4:46:f4:e1
                        79:49:38:4b:da:b1:46:f3:4f:f6:e6:7a:6d:69:fd:a7
                        1b:28:15:86:f7:68:bc:00:36:b2:fc:23:f4:81:ba:94
                        4d:3e:76:1d:27:3f:1a:ea:06:b7:fa:7e:5b:d9:d6:5b
                        79:1a:4a:97:ef:d1:8b:95:82:e1:de:52:21:d0:8b:63
                        eb:5f:fc:bc:2b:e8:87:f6:e4:27:2c:58:00:d9:f2:d4
                        ce:7a:d3:a4:1c:d9:99:c1:ba:50:fa:21:2f:fc:7a:11
                        58:56:aa:e1:bb:2a:3d:f5:ab:8e:32:ac:10:82:8a:d8
                        78:22:6f:7e:f6:7d:97:77:63:31:f8:67:78:b9:f0:09
                        79:ae:9a:bc:f6:bf:36:77:86:16:97:39:ea:ef:46:97
                        28:98:16:e9:0b:a7:0f:af:9e:be:ad:22:30:d2:2e:93
                        b8:e6:cd:83:21:b5:bf:be:08:c7:70:31:96:66:65:c2
                        84:81:24:92:d4:b9:ea:6f:63:3c:c6:64:99:05:b5:46
                        97:ae:b0:31:47:d4:54:62:39:09:c1:f2:20:4e:20:68
                        69:f1:28:b3:3b:cb:cd:9a:8a:0e:e9:2f:6a:5a:1c:30
                        cc:b5:dc:b2:01:aa:dd:09:ed:a7:b7:cd:db:dd:e4:63
                        c4:7f:44:56:3f:36:87:1a:07:65:a8:4f:8d:b6:91:e1
                        70:5c:f9:36:0e:f1:d0:70:6a:29:26:9c:c2:98:1e:9e
                        79:0c:bd:32:e4:7e:13:0c:3e:2e:99:90:98:5c:a8:9c
                        d3:48:ed:02:61:ea:16:c0:4c:71:0a:79:c9:4a:3b:29
                        46:91:f2:d9:75:e4:fa:57:18:b5:8b:25:77:25:c1:89
                        13:b6:b1:09:b9:d4:ae:0e:f3:bd:44:12:54:67:c1:60
                        84:cd:98:58:c7:a6:63:14:9c:80:bf:2e:1a:9c:5e:34
                        f8:1e:58:92:40:05:11:04:5a:46:03:60:e5:cd:3b:31
                        ed:6e:8f:f9:c8:89:47:0f:39:b0:98:f4:cc:9b:ee:d7
                        9d:d0:73:2e:f4:8b:f3:64:36:ef:40:b1:a3:89:04:37
                        74:18:26:c4:0e:db:a4:ba:76:45:b1:e9:b0:24:d4:c4
                        21:50:aa:50:34:82:4f:d3:33:39:80:a5:8a:d5:f8:3e
                        85:1a:07:4e:d3:d8:d1:3a:bd:ba:8a:49:cf:20:af:9c
                        9c:57:ad:62:43:a3:1d:72:8a:bd:6d:6d:ee:28:b2:91
                        3f:88:9d:6d:bc:f5:b4:f3:a6:5a:19:0a:a5:8e:ce:bf
                        46:9b:24:4d:0e:dd:8c:ef:ed:0a:46:3b:1f:d5:b5:9a
                        9e:92:70:55:35:5b:5c:aa:f5:41:f6:7c:2e:21:02:a5
                        59:c8:ae:a9:83:5b:f5:a4:db:33:dd:89:a1:6f:ce:4a
                        e5:43:ad:f4:22:a7:6f:ca:d8:35:07:92:59:db:6c:63
                        81:b3:00:e8:d3:28:7f:2c:fd:92:69:67:18:0d:60:1b
                        c5:3f:7e:98:20:38:ac:57:1c:ae:d3:c3:cd:30:16:12
                        98:a3:b4:3b:1f:6a:3a:ba:b3:b2:51:7c:b8:4b:d2:1e
                        b9
                Exponent (bits 24):
                        01:00:01
        Extensions:
                Basic Constraints (critical):
                        Certificate Authority (CA): TRUE
                Certificate Policies (not critical):
                        1.3.6.1.4.1.43664.3280.33.0
                                URI: https://www.example.com/x509/policy.txt
                Key Usage (critical):
                        Certificate signing.
                        CRL signing.
                Subject Key Identifier (not critical):
                        f8b9f648667dea01671407953931c4791e8f384f
                CRL Distribution points (not critical):
                        URI: https://www.example.com/x509/revocation.pem
Other Information:
        Public Key ID:
                sha1:f8b9f648667dea01671407953931c4791e8f384f
                
sha256:a0be4295f0709cd3b4a0c3bd0b0f1d2e5946fd7f6f886120e1f8e7967a666a8f
        Public key's random art:
                +--[ RSA 8192]----+
                |          o=*=   |
                |           o*.o  |
                |          .  = + |
                |       . .  o E .|
                |      . S o  +   |
                |       . *    .  |
                |        * o .    |
                |       +.o +     |
                |       .oo+      |
                +-----------------+



Signing certificate...
Generating private-ca-crl.pem...
Generating a signed CRL...
Loading CRL list...
Loading certificate list...
Update times.

X.509 Certificate Revocation List Information:
        Version: 2
        Issuer: O=Example,CN=Private Certificate Authority
        Update dates:
                Issued: Thu Jul 25 22:24:05 UTC 2019
                Next at: Fri Dec 31 23:59:59 UTC 9999
        Extensions:
                Authority Key Identifier (not critical):
                        f8b9f648667dea01671407953931c4791e8f384f
                CRL Number (not critical): 00
        No revoked certificates.
        Signature Algorithm: RSA-SHA256
        Signature:
                4b:de:dc:d0:76:8e:cc:f9:a4:a4:66:6b:6e:a2:92:7f
                c8:fe:9e:e6:ff:c2:fb:68:cf:7c:20:24:1e:14:b3:06
                07:f1:41:ac:36:5a:09:16:9b:4c:3b:d1:9f:ad:42:07
                d8:43:e1:a9:d1:8e:16:2f:0f:6d:f7:1a:11:6d:b2:5e
                f0:8e:1d:4e:6b:04:1c:3d:09:fe:39:50:d3:fb:38:b7
                90:4d:0d:90:53:ef:e5:90:0b:49:85:c8:08:ff:9c:24
                5f:c8:68:3e:a1:a4:1f:a4:10:fc:bc:80:5e:f0:b5:01
                35:46:2d:cf:d5:c7:2b:8c:57:1d:47:34:79:1c:9e:5b
                63:84:05:37:21:6c:d1:f2:c7:39:c5:0f:b1:af:ca:23
                d2:26:4a:1c:d8:a9:48:66:67:45:66:df:a3:74:6f:fe
                10:a9:00:d9:f1:95:64:37:76:4b:d4:6c:9e:1d:77:b7
                5d:95:90:5a:e9:ac:92:dd:0f:ed:fc:a7:50:8e:77:3b
                f0:75:d0:5e:99:66:8c:1a:31:e6:15:d8:b3:87:86:f6
                a2:ce:26:5e:95:54:0d:6e:93:59:43:c7:59:36:4a:f2
                89:4d:4b:77:42:35:d8:69:41:f8:eb:88:4f:19:1b:f6
                06:f0:85:40:e2:28:b3:2d:78:e1:a5:b7:a7:58:0d:cb
                6c:00:89:d5:de:04:76:d5:14:e3:50:68:34:38:e7:4b
                8a:40:cb:32:fd:f4:8e:1d:99:a7:38:35:f7:95:bc:56
                5e:a7:16:02:b7:b4:1f:2d:4f:4c:8e:df:85:01:e3:f6
                a2:46:17:5c:63:ff:99:78:1a:bf:96:97:0d:b1:ea:65
                37:68:3c:a8:2b:6f:b7:57:67:e2:50:9f:54:bb:24:a4
                50:4c:67:00:ec:e2:03:67:a8:97:4b:12:44:e4:ed:1f
                fc:62:10:50:77:98:79:f7:99:da:5e:e9:68:da:ce:dc
                aa:c6:26:2d:73:91:0c:59:fb:e2:f0:dc:93:82:0c:14
                6e:d2:51:88:58:26:b6:67:2a:24:bc:9c:15:b3:6b:bc
                fb:36:a0:a8:74:df:c6:0a:d2:fc:2f:0f:d7:f0:38:61
                d5:72:78:a1:a7:04:07:46:08:ff:70:63:fb:08:f2:83
                16:8b:88:c0:8c:5a:dc:1d:43:af:94:c1:df:08:a1:6d
                22:7e:90:a4:e7:a8:8e:e0:c1:94:b0:47:7a:f0:7d:b4
                a2:4d:f3:99:44:e1:74:0e:b0:47:6c:ed:ab:19:b3:ed
                13:2b:cd:34:a4:d9:b7:22:1b:0a:53:07:10:30:82:bd
                6a:47:89:24:13:f3:a0:4a:c9:14:1c:04:28:86:af:fb
                a3:bf:80:f6:93:71:7b:c0:eb:cc:bd:12:59:63:29:88
                16:02:d0:15:9f:08:99:32:0b:60:00:0e:58:c1:50:3a
                2a:a7:31:f0:f8:5a:52:9a:ff:d0:45:be:71:20:25:ea
                8e:4c:b6:a9:d0:3c:66:0e:cf:9b:aa:db:88:72:f5:52
                41:31:f8:0f:65:f3:40:87:56:a5:41:f3:1f:fb:e3:36
                3b:16:9e:7e:5a:35:b3:c3:70:df:7a:82:a4:d2:11:16
                ad:4f:5f:c5:98:ef:71:3a:f1:66:ee:92:d9:37:08:16
                bd:5f:34:5f:e3:85:4b:f4:2d:30:42:f8:2a:e5:1a:45
                83:96:6b:e3:b9:42:8b:8e:88:a5:ff:f8:f1:0c:e3:98
                33:83:37:dc:1d:a4:67:80:de:08:40:df:20:f7:26:35
                6a:81:fa:a3:24:c4:16:85:ab:13:05:e8:12:71:de:6e
                d0:db:4f:88:e8:a1:6c:8d:e7:a4:b6:eb:f5:b1:cc:ae
                c5:ca:39:9a:b9:20:6a:60:8f:11:37:23:4a:57:a3:1c
                80:c0:39:20:a4:91:4a:35:36:75:02:82:2f:12:74:f8
                fa:56:b4:2f:4e:06:ab:b3:b9:27:2e:fb:fb:f1:21:91
                b6:10:48:cf:10:0e:e0:c9:7e:f0:b2:44:f5:aa:ce:3a
                5f:41:cb:44:d7:0a:59:4e:99:dc:c5:35:8c:5e:d7:94
                80:3c:e7:8b:02:b6:fc:cd:e3:5a:f8:71:1f:da:f2:8b
                a3:60:31:2b:ef:1b:d6:4e:9f:c0:9b:56:4f:0e:c1:14
                f8:6e:83:c3:5d:20:25:22:5f:93:20:3a:77:25:b8:8e
                a4:85:25:94:64:78:13:84:58:ab:82:f3:1a:b0:cb:73
                a7:7a:17:72:15:19:89:31:06:5c:09:76:41:dc:ba:53
                92:03:06:ae:fd:ba:8d:2a:d2:ed:5c:6c:63:b0:90:d0
                e7:54:3c:4c:59:7c:99:40:3c:74:63:81:eb:bf:99:98
                1d:e4:84:cd:6c:e8:9d:88:04:3c:f1:b8:58:f8:7b:12
                5a:95:47:5c:fa:d7:1d:90:d6:24:c1:96:8c:87:6d:a2
                81:46:3a:57:fe:e8:e3:f1:ec:2c:e4:5b:d3:aa:9c:eb
                28:08:76:8b:cf:ba:21:24:a0:53:f7:70:a7:c0:70:27
                6c:a4:7b:df:38:75:7e:b1:94:4e:25:dc:0a:cb:4a:4d
                f4:76:46:dc:5b:36:fa:2b:9d:49:9f:2f:6a:71:e1:58
                94:ec:9d:2d:2a:c7:6c:e8:c3:cd:e8:95:c7:1d:fd:76
                c9:a4:34:30:62:26:a8:a5:4a:eb:b5:04:bd:f0:b8:4e

Generating private-int-key.pem...
Assuming PKCS #8 format...
** Note: You may use '--sec-param High' instead of '--bits 4096'
Generating a 4096 bit RSA private key...
Generating private-int-req.pem...
Generating a PKCS #10 certificate request...
Generating private-int-cert.pem
Generating a signed certificate...
X.509 Certificate Information:
        Version: 3
        Serial Number (hex): 00adaabe
        Validity:
                Not Before: Mon Apr 07 17:27:00 UTC 2014
                Not After: Tue Jan 19 03:14:07 UTC 2038
        Subject: O=Example,CN=Private Intermediate Certificate Authority
        Subject Public Key Algorithm: RSA
        Algorithm Security Level: High (4096 bits)
                Modulus (bits 4096):
                        00:a9:cf:10:24:3b:22:0f:cc:14:7d:ae:70:f4:7e:2e
                        51:1c:cc:95:1a:65:a7:a1:4d:f4:10:ad:5f:a9:46:ac
                        b5:8d:95:39:c7:35:51:5e:a8:0c:8c:af:b0:44:68:3e
                        79:c6:db:e7:54:54:d8:63:f6:f8:35:42:83:96:91:e7
                        a7:cc:ab:b8:2c:d0:93:32:15:a9:4b:1a:9b:2a:78:c5
                        6c:de:d2:20:0d:07:b4:b2:52:10:b9:88:46:b4:fb:44
                        66:a3:80:39:e3:92:bc:04:da:f6:43:f7:7b:c5:e5:61
                        db:b0:ba:36:bc:85:03:56:ac:ed:bb:55:c9:32:1b:32
                        f2:36:43:1c:08:f6:68:3f:53:86:43:5e:38:53:1d:bb
                        70:74:87:71:d8:14:dd:32:04:19:19:62:92:ca:57:4a
                        46:ec:d9:32:75:4a:9d:ed:26:dc:fe:49:3e:fc:3f:18
                        c2:53:21:c1:6d:4a:67:45:63:23:5e:8c:a2:8e:1d:42
                        b5:d3:b2:f6:2c:19:32:e1:c2:29:ae:c6:52:05:aa:ce
                        f8:37:9f:01:06:83:ad:91:d5:27:af:60:d8:ec:c2:52
                        03:23:41:7c:ca:65:d0:70:d0:ba:89:d4:e6:80:b8:fa
                        76:47:29:61:76:41:80:ba:53:97:4c:d2:3d:da:28:70
                        35:24:bc:e8:d3:93:87:ae:91:7d:1d:f2:be:12:ac:3c
                        dd:7d:24:90:96:e5:37:28:c5:0c:34:45:2e:3d:75:a2
                        d7:1d:05:ba:68:ab:aa:c6:0d:d5:c7:61:78:df:c1:ee
                        90:b2:c3:6b:b1:b3:e7:50:f7:77:5f:cc:f7:a0:d1:4c
                        54:b0:fd:d6:51:67:53:5f:d3:5f:84:91:d1:bf:69:fd
                        fc:9c:99:8f:fa:90:50:bd:9a:1e:ae:7e:12:51:8b:6f
                        5d:fb:dc:73:4f:21:3f:25:27:9b:33:c4:00:0b:10:28
                        80:06:c8:57:7f:1a:f1:07:68:56:d9:61:30:55:f2:99
                        90:69:e5:75:b2:32:f3:c4:1f:8f:32:65:77:bd:39:9a
                        67:18:37:44:28:e3:89:bf:ad:62:a2:ca:55:91:24:95
                        f0:96:87:02:05:b1:65:1a:95:31:54:74:05:ea:52:f6
                        fa:d0:54:c6:ef:94:d8:f1:b8:c6:62:89:4e:2c:4f:2c
                        c2:6b:0b:cb:00:56:13:96:97:7f:ac:9c:95:68:7b:c6
                        1f:ca:f9:92:ab:45:88:89:21:15:96:61:b2:3d:b9:23
                        4f:6a:b7:a0:b1:06:ef:5b:40:04:32:16:9a:b3:fa:eb
                        00:53:8b:85:2d:1c:eb:94:02:dd:c6:81:02:da:ea:d4
                        05
                Exponent (bits 24):
                        01:00:01
        Extensions:
                Basic Constraints (critical):
                        Certificate Authority (CA): TRUE
                Key Usage (critical):
                        Certificate signing.
                Subject Key Identifier (not critical):
                        5e50dd0119e920d8f6401ef97245485bbf7c5671
                Authority Key Identifier (not critical):
                        f8b9f648667dea01671407953931c4791e8f384f
                CRL Distribution points (not critical):
                        URI: https://www.example.com/x509/revocation.pem
Other Information:
        Public Key ID:
                sha1:5e50dd0119e920d8f6401ef97245485bbf7c5671
                
sha256:a681de4ad6c0fe08b36f5639358c05e53902d7a73c5cb0c38756da00f9312fa7
        Public key's random art:
                +--[ RSA 4096]----+
                |       +ooo+=*.oE|
                |      ..*ooo=.. o|
                |       .o=.+  . .|
                |        ..+ .. ..|
                |        So.   o o|
                |       . .     o |
                |        .        |
                |                 |
                |                 |
                +-----------------+



Signing certificate...
Generating ejabberd-key.pem...
** Note: You may use '--sec-param High' instead of '--bits 4096'
Generating a 4096 bit RSA private key...
Generating ejabberd-req.pem...
Generating a PKCS #10 certificate request...
Generating ejabberd-cert.pem
Generating a signed certificate...
X.509 Certificate Information:
        Version: 3
        Serial Number (hex): 00ade4be
        Validity:
                Not Before: Wed Jul 24 16:45:00 UTC 2019
                Not After: Tue Jan 19 03:14:07 UTC 2038
        Subject: CN=ejabberd.example.com
        Subject Public Key Algorithm: RSA
        Algorithm Security Level: High (4096 bits)
                Modulus (bits 4096):
                        00:c3:85:8d:c6:9e:90:1b:8c:0a:29:1e:b1:0b:26:48
                        12:64:d4:ef:6d:67:47:29:e6:1d:7f:91:1c:d5:69:af
                        69:e5:93:12:8f:71:ce:ae:cf:9a:e2:7b:16:11:e3:2d
                        0d:1e:f7:fa:6d:d4:33:13:1a:71:4b:25:26:64:c5:90
                        38:70:e0:01:9b:f0:8e:3b:e7:62:84:4a:0f:3f:85:e4
                        62:46:ba:6e:30:d5:54:a0:5e:3e:f2:79:72:07:cb:6f
                        be:6d:6b:4b:3e:de:18:cc:60:83:f5:10:73:bc:01:3d
                        87:9d:8f:fd:f1:c8:b1:ca:87:96:4b:17:99:aa:f4:14
                        e0:83:b2:85:b3:cc:63:ac:f8:b1:bc:79:7f:b5:f3:58
                        2e:a3:bd:a8:6f:01:12:39:01:b6:96:36:ce:13:bd:21
                        60:72:30:18:8f:13:55:76:b0:18:91:69:dd:9a:78:81
                        4f:c8:08:4b:61:24:52:63:38:34:59:7b:a6:60:13:06
                        e1:33:11:26:b5:24:d2:58:e5:20:47:29:52:fe:a9:3b
                        c5:42:a3:cb:e5:2c:08:fe:50:fa:6f:35:4b:09:b3:8a
                        e3:11:93:1a:17:79:63:8b:7a:58:9f:84:6c:3a:0d:a1
                        0b:06:ae:45:63:6a:f6:c1:67:9b:8f:35:3e:82:4f:71
                        b0:d3:88:be:c3:4e:6f:0b:29:fc:f3:bd:83:c3:2f:d0
                        27:ec:23:55:ce:45:6a:d8:0e:ef:ed:e7:08:5c:c5:6d
                        1e:b8:80:ea:f5:5e:c1:44:f7:ed:6d:52:4a:51:92:9d
                        a9:21:b1:22:9d:bb:bc:93:9a:3b:2f:dd:27:26:7c:75
                        21:d4:0a:1d:a2:7e:ed:2c:cf:d8:da:21:2d:0d:a3:a9
                        e7:93:ce:75:a1:ca:e5:f0:05:c5:80:57:e7:56:e6:8f
                        01:f8:dd:38:7e:68:e5:f0:b3:5e:1a:08:cd:78:29:24
                        dc:ca:4a:33:31:47:dc:24:4e:b9:c3:18:fd:48:35:c1
                        ba:23:e9:51:57:1b:64:5d:e0:3e:c1:ae:a3:45:56:95
                        fa:78:36:7e:c2:0a:e4:48:b3:a1:36:f4:12:c1:f2:4c
                        d5:fb:4c:d2:8e:34:0a:df:49:e2:f5:82:0c:b6:9f:d6
                        f5:f1:d5:0e:d7:a3:3a:1b:56:41:89:ae:18:85:82:1e
                        db:4e:4c:27:73:34:96:2c:72:ee:b5:9e:fb:71:9f:2b
                        65:69:4f:8e:a7:23:55:bb:ac:db:58:b3:a4:58:8f:30
                        00:1d:55:c1:28:55:7e:66:69:74:06:d1:3f:c5:b5:17
                        13:aa:a1:b0:ce:9d:47:a1:1b:9e:96:97:0a:7e:aa:44
                        19
                Exponent (bits 24):
                        01:00:01
        Extensions:
                Basic Constraints (critical):
                        Certificate Authority (CA): FALSE
                Key Purpose (not critical):
                        TLS WWW Client.
                        TLS WWW Server.
                        Ipsec IKE.
                Subject Alternative Name (not critical):
                        DNSname: ejabberd.example.com
                        DNSname: example.com
                        DNSname: jabber.example.com
                        DNSname: *.jabber.example.com
                Key Usage (critical):
                        Digital signature.
                        Key encipherment.
                Subject Key Identifier (not critical):
                        8b76d97ad0265a1b6b70e02144c1d8f5356b84d5
                Authority Key Identifier (not critical):
                        5e50dd0119e920d8f6401ef97245485bbf7c5671
                CRL Distribution points (not critical):
                        URI: https://www.example.com/x509/revocation.pem
Other Information:
        Public Key ID:
                sha1:8b76d97ad0265a1b6b70e02144c1d8f5356b84d5
                
sha256:0fd9ff41257ea66bf67cfe9ace02092692fdd84d63b52d875f5731306d5c37b6
        Public key's random art:
                +--[ RSA 4096]----+
                |   =oo.  o=.     |
                |  . +  ..o oE    |
                |   .    . o      |
                |    . o  .       |
                |     o oS.       |
                |      o.*+o      |
                |      o=+B.      |
                |     ...+..      |
                |       ...       |
                +-----------------+



Signing certificate...

Attachment: signature.asc
Description: PGP signature

Reply via email to