Hi, Tried this but no luck, its not reading the serial from the CSR.
-----Original Message----- From: Oliver Welter <m...@oliwel.de> Sent: Wednesday, February 21, 2024 1:26 PM To: openxpki-users@lists.sourceforge.net Subject: Re: [OpenXPKI-users] Profile with serialNumber and custom extensions Hi Henri, my fault - serialNumber is not in the "registered RDN" list for the template parser shortcuts, it should work with preset: '[% serialNumer.0 %]' best regards Oliver On 20.02.24 15:33, henri.sunde...@iki.fi wrote: > I tried that, but it does not work. > Using the template with preset as set below, it fills serialNumber > field with value "serialNumber". Certificate profile is same as I > presented before. This sounds like a bug - maybe it tries to take key > instead its value? > > > serial.yaml: > id: serialNumber > label: serialNumber > description: Serial Number > preset: serialNumber > type: text > width: 40 > placeholder: 0000 > > > > > -----Original Message----- > From: Oliver Welter <m...@oliwel.de> > Sent: Monday, February 19, 2024 10:21 AM > To: openxpki-users@lists.sourceforge.net > Subject: Re: [OpenXPKI-users] Profile with serialNumber and custom > extensions > > Hello Henri, > > you have to use "serialNumber" as preset also, SN is the "Surname" OID > :) > > For the second part - you can turn on the "copy extension" flag but as > outlined in the comment this copies ANYTHING from the request so this > requires a certain portion of control on CSR generation and a very > good validation as you otherwise might sign things you do not expect too. > > The other option requires a modification of the workflow and the use > of OpenXPKI::Server::Workflow::Activity::Tools::AddCertExtension, > likely with some magic around to build the right content - or an > upgrade to the enterprise edition which comes with a templating > mechanism and some other nice features around profile based extensions. > > best regards > > Oliver > > On 15.02.24 20:14, henri.sunde...@iki.fi wrote: >> I'm trying to make a new certificate profile, with this kind of >> requirements: >> - Subject shall have serialNumber field, which is copied from CSR >> - Extensions shall have a custom OID field with custom bit stream >> data, which is copied from CSR >> >> I haven't been able to get any of that working. I added to templates >> serial.yaml: >> -- >> id: serialNumber >> label: serialNumber >> description: Serial Number >> preset: SN.0 >> type: text >> width: 40 >> placeholder: 0000 >> -- >> And I made new profile like this: >> -- >> # The name of the file equals the name of the profile >> label: License >> >> # digest to use >> digest: sha256 >> >> style: >> 00_basic_style: >> label: I18N_OPENXPKI_UI_PROFILE_BASIC_STYLE_LABEL >> description: I18N_OPENXPKI_UI_PROFILE_BASIC_STYLE_DESC >> # Define which input fields you want on the UI >> # Just put their names here and define them at the end >> # in the "template" section. >> # You can also use the template names found in the >> # template.yaml file, if you duplicate a name, the >> # local definition gets precedence. >> ui: >> subject: >> - hostname >> - serial >> - o >> - c >> info: >> - requestor_realname >> - requestor_email >> - owner_contact >> - comment >> >> # Subject is evaluated by template toolkit with the input >> data from the ui.subject fields >> # Note: Fields which have max > 1 are always passed as array >> subject: >> dn: CN=[% hostname %],serialNumber=[% serial %] >> # You can use the fields from ui.subject here >> >> # this is attached to the certificate, all fields from ui >> can be used >> metadata: >> requestor: "[% requestor_realname %]" >> email: "[% requestor_email %]" >> owner_contact: "[% owner_contact || requestor_email %]" >> entity: "[% hostname FILTER lower %]" >> >> >> # A standard template used from the automated enrollment workflows >> enroll: >> subject: >> # All RDNs from the PKCS10 containers DN are avaiable here >> # Items from the SAN section are also available here >> # Note that all items are always arrays, for the SAN >> the pipe > is >> # used as separator character to split individual items later >> dn: CN=[% CN.0 %],serialNumber=[% SN.0 %] >> >> >> # metadata source items added via the "params" section of the >> # PersistMetadata action in the workflow are available in data >> # DN/SAN parts are available as defined above >> metadata: >> system_id: "[% data.cust_id %]" >> server_id: "[% data.server_id %]" >> entity: "[% CN.0.replace(':.*','') FILTER lower %]" >> >> # Consumed by RenderExtensions to add extra extensions >> extension: >> securityIdentifier: '[% ext.sid %]' >> certificateTemplateName: '[% ext.template_name %]' >> certificateTemplate: >> - '[% ext.template.oid %]' >> - '[% ext.template.major %]' >> - '[% ext.template.minor %]' >> >> # Profile extensions - set 0/1 as needed >> extensions: >> # Enable this to copy extensions from the CSR to the Certificate >> # THIS MIGHT BE DANGEROUS, see copy_extensions of openssl ca command >> # For security reasons hhis can NOT be set in default.yaml >> copy: copy >> >> basic_constraints: >> critical: 1 >> ca: 0 >> # only relevant with ca = 1 >> path_length: 0 >> >> key_usage: >> critical: 0 >> digital_signature: 0 >> non_repudiation: 1 >> key_encipherment: 0 >> data_encipherment: 0 >> key_agreement: 0 >> key_cert_sign: 0 >> crl_sign: 0 >> encipher_only: 0 >> decipher_only: 0 >> >> extended_key_usage: >> critical: 0 >> # these are OIDs, some OIDs are known and have names >> client_auth: 0 >> server_auth: 0 >> email_protection: 0 >> code_signing: 0 >> time_stamping: 0 >> ocsp_signing: 0 >> # Any other oid can be given by number >> 1.3.6.1.4.1.311.20.2.2: 0 >> >> >> subject_key_identifier: >> critical: 0 >> hash: 1 >> >> authority_key_identifier: >> critical: 0 >> keyid: 1 >> issuer: 1 >> >> issuer_alt_name: >> critical: 0 >> copy: 0 >> >> crl_distribution_points: >> critical: 0 >> # uri can be scalar or list >> uri: >> - http://localhost/cacrl.crt >> - ldap://localhost/cn=[% ISSUER.CN.0 >> %],dc=OpenXPKI,dc=org >> >> authority_info_access: >> critical: 0 >> # ca_issuers and ocsp can be scalar or list >> ca_issuers: http://localhost/cacert.cer >> ocsp: http://ocsp.openxpki.org/ >> >> oid: >> 1.2.3.4.5.6: >> critical: 1 >> copy: 1 >> # end of extensions >> >> # Define the input fields you used below here >> #template: >> -- >> >> The CSR looks like this: >> -- >> >> Certificate Request: >> Data: >> Version: 1 (0x0) >> Subject: CN=Device01, O=xxxx inc/serialNumber=1234567 >> Subject Public Key Info: >> Public Key Algorithm: id-ecPublicKey >> Public-Key: (384 bit) >> pub: >> xxxx >> ASN1 OID: secp384r1 >> NIST CURVE: P-384 >> Attributes: >> Requested Extensions: >> 1.2.3.4.5.6: critical >> xxxxxx >> Signature Algorithm: ecdsa-with-SHA256 >> Signature Value: >> xxxx >> >> -- >> >> >> So far I've only tried the manual workflow. I can see it loads the >> serial.yaml since it puts the placeholder data and labels in there, >> but the serialnumber data from CSR is not filled. >> For the custom OID I'm not that far yet since it fails to the serial. >> >> Any idea what should be changed? Is the serial number even properly >> supported? >> >> >> //HS >> >> >> >> >> >> _______________________________________________ >> OpenXPKI-users mailing list >> OpenXPKI-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/openxpki-users >> > -- > Protect your environment - close windows and adopt a penguin! > > > > _______________________________________________ > OpenXPKI-users mailing list > OpenXPKI-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/openxpki-users > > > > _______________________________________________ > OpenXPKI-users mailing list > OpenXPKI-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/openxpki-users > -- Protect your environment - close windows and adopt a penguin! _______________________________________________ OpenXPKI-users mailing list OpenXPKI-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openxpki-users _______________________________________________ OpenXPKI-users mailing list OpenXPKI-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openxpki-users