I got it!!!
Well, sort of.

I can't believe this, but apparently Apple requires the requested x.500
subnect to begin with the country:
/C=US/O=DZsec/CN=andesite
having the org or just a CN was not enough.

That small change fixed it. Except something else is no broken. Using SSCEP
or an MDM profile, I get this error in catchall.log:

openxpki.system.ERROR Error while executing API command; __caller__ => /
usr/local/lib/perl5/site_perl/OpenXPKI/Service/LibSCEP/Command/PKIOperation.pm:495,
__command__ => create_workflow_instance, __error__ => Can't call method
"debug" on an undefined value at /
usr/local/lib/perl5/site_perl/Workflow/Action.pm line 120.
[pid=70324|sid=6tYO|wftype=certificate_enroll|wfid=27391|sceptid=37BA270B8A3E734A7409F7BB3DFF94E1]
2021/06/28 15:22:27 openxpki.system.ERROR Error executing SCEP command
'PKIOperation': Error while executing API command; __caller__ => /
usr/local/lib/perl5/site_perl/OpenXPKI/Service/LibSCEP/Command/PKIOperation.pm:495,
__command__ => create_workflow_instance, __error__ => Can't call method
"debug" on an undefined value at /
usr/local/lib/perl5/site_perl/Workflow/Action.pm line 120.
[pid=70324|sid=6tYO|wftype=certificate_enroll|wfid=27391|sceptid=37BA270B8A3E734A7409F7BB3DFF94E1]

my scep config
cat /usr/local/etc/openxpki/config.d/realm/dzsec/scep/generic.yaml


renewal_period: 000060

revoke_on_replace:
    reason_code: keyCompromise
    delay_revocation_time: +000014


workflow:
    type: certificate_enroll
    param:
        # key: name in workflow context, value: parameter from scep wrapper
        # server and interface are always set, the mapping below is
        # the default set that is used when no map is given
        transaction_id: transaction_id
        signer_cert: signer_cert
        pkcs10: pkcs10
        _url_params: url_params
        #_pkcs7: pkcs7

authorized_signer:
    rule1:
        Full DN
        subject: CN=.+:pkiclient,.*
        subject: .*,CN=US
    #rule2:
        # Full DN
            subject: CN=my.scep.enroller.com
<http://cn=my.scep.enroller.com/>:generic,.*

policy:

    allow_man_authen: 1

    allow_anon_enroll: 0

    allow_man_approv: 1

    approval_points: 0

    max_active_certs: 1

    auto_revoke_existing_certs: 1

    allow_replace: 1

response:
    getca:
        ra: fullchain
        issuer: fullchain


profile:
  cert_profile: tls_server
  cert_subject_style: enroll

profile_map:
    pc-client: tls_client

hmac: verysecret

challenge:
    value: LongRandomPassword

eligible:
    initial:
       value@: connector:scep.generic.connector.initial
       args: '[% context.cert_subject_parts.CN.0
<http://context.cert_subject_parts.cn.0/> %]'
       expect:
         - Build
         - New

    renewal:
       value: 1

    onbehalf:
       value: 1


connector:
    initial:
        LOCATION: /home/pkiadm/cmdb.yaml



On Mon, Jun 28, 2021 at 2:13 PM, Oliver Welter <[email protected]> wrote:

> Am 28.06.21 um 19:30 schrieb Nick Dawson:
>
> "We're not in windows" :) :) :)
>
> should be "on windows" I guess, but my fingers tend to be to large
> sometimes ;)
>
> I thought I'd found a breakthrough hint
> here: https://support.apple.com/en-us/HT210176
> <https://support.apple.com/en-us/HT210176>
> So I made yet another new scep cert/key with the DNS names in the SAN
> field. Still no luck.
>
> This is related to TLS certificates and should not be relevant to SCEP
> (which is plain HTTP on the transport layer)
>
> I'm starting to think, unless anyone has demonstrated otherwise, that the
> way apple handles SCEP is just not compatible.
>
> One other curiosity:
> Apple requires an SHA1 or MD5 fingerprint of the SCEP cert. Makes sense.
> I've been using sscep getca to see what openxpi is sending and I have been
> using the MD5 fingerprint from the SCEP cert from that output. Any reason
> that would be an incorrect process? I've also used
>
> Either I don't understand the purpose or you got that wrong, an SCEP
> message includes several digests/encryption steps (also in the reply) which
> is something you can configure but I never heard of the need to add the
> value of a fingerprint soemwhere.
>
> here's the request, as decoded from the scep.log file (not sure how to
> change log level to debug)
>
> /etc/openxpki/scep/log.conf (restart apache after changing it)
>
> cat request.txt | perl -pe 'use
> MIME::Base64;s/%([0-9a-f]{2})/sprintf("%s",pack("H2",$1))/eig;$_=MIME::Base64::decode($_);'
>
> | openssl pkcs7 -inform DER -print_certs -text
>
> Print certs just gives you the signer cert which we already saw earlier,
> the CSR is in the payload of this message here
>
>   238:d=3  hl=4 l= 271 prim: BIT STRING
>
> The value in this section is the CSR wrapped in a PKCS7 container
> encrypted with the SCEP RA key (at least it should be and I think this is
> the problem). You should be able to extract the payload this with
> "openssl cms" and pipe it to asn1parse
>
> openssl cms -inform PEM -in scep.p7  -verify -noverify  | openssl
> asn1parse -inform der  -i
> Verification successful
>     0:d=0  hl=4 l=1343 cons: SEQUENCE
>     4:d=1  hl=2 l=   9 prim:  OBJECT            :pkcs7-envelopedData
>    15:d=1  hl=4 l=1328 cons:  cont [ 0 ]
>    19:d=2  hl=4 l=1324 cons:   SEQUENCE
>    23:d=3  hl=2 l=   1 prim:    INTEGER           :00
>    26:d=3  hl=4 l= 647 cons:    SET
>    30:d=4  hl=4 l= 643 cons:     SEQUENCE
>    34:d=5  hl=2 l=   1 prim:      INTEGER           :00
>    37:d=5  hl=2 l= 107 cons:      SEQUENCE
>    39:d=6  hl=2 l=  83 cons:       SEQUENCE
>    41:d=7  hl=2 l=  11 cons:        SET
>    43:d=8  hl=2 l=   9 cons:         SEQUENCE
>    45:d=9  hl=2 l=   3 prim:          OBJECT            :countryName
>    50:d=9  hl=2 l=   2 prim:          PRINTABLESTRING   :DE
>    54:d=7  hl=2 l=  17 cons:        SET
>    56:d=8  hl=2 l=  15 cons:         SEQUENCE
>    58:d=9  hl=2 l=   3 prim:          OBJECT            :organizationName
>    63:d=9  hl=2 l=   8 prim:          UTF8STRING        :OpenXPKI
>    73:d=7  hl=2 l=  12 cons:        SET
>    75:d=8  hl=2 l=  10 cons:         SEQUENCE
>    77:d=9  hl=2 l=   3 prim:          OBJECT
> :organizationalUnitName
>    82:d=9  hl=2 l=   3 prim:          UTF8STRING        :PKI
>    87:d=7  hl=2 l=  35 cons:        SET
>    89:d=8  hl=2 l=  33 cons:         SEQUENCE
>    91:d=9  hl=2 l=   3 prim:          OBJECT            :commonName
>    96:d=9  hl=2 l=  26 prim:          UTF8STRING        :OpenXPKI Demo
> Issuing CA 1
>   124:d=6  hl=2 l=  20 prim:       INTEGER
> :5243CE43D4216F8CAFD5A7F73809259AA84CBD2C
>   146:d=5  hl=2 l=  13 cons:      SEQUENCE
>   148:d=6  hl=2 l=   9 prim:       OBJECT            :rsaEncryption
>   159:d=6  hl=2 l=   0 prim:       NULL
>   161:d=5  hl=4 l= 512 prim:      OCTET STRING      [HEX
> DUMP]:0B1....71F83
>   677:d=3  hl=4 l= 666 cons:    SEQUENCE
>   681:d=4  hl=2 l=   9 prim:     OBJECT            :pkcs7-data
>   692:d=4  hl=2 l=  17 cons:     SEQUENCE
>   694:d=5  hl=2 l=   5 prim:      OBJECT            :des-cbc
>   701:d=5  hl=2 l=   8 prim:      OCTET STRING      [HEX
> DUMP]:803B9371AD89BDFC
>   711:d=4  hl=4 l= 632 prim:     cont [ 0 ]
>
> The upper part denotes the IssuerSerial of the used encryption certificate
> with the value at pos 124 being the serial number of the encryption
> certificate, the lower part is the symetric key material and the encrypted
> payload.
>
> Oliver
>
> --
> Protect your environment - close windows and adopt a penguin!
>
> _______________________________________________
> OpenXPKI-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/openxpki-users
>
_______________________________________________
OpenXPKI-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openxpki-users

Reply via email to