>>Hi Steve,

>> I think I had a similar issue and I solved it by editing the crypto.yaml 
>> file of the realm as shown below.

Tried the modifications and went over my logic to make sure I wasn’t missing 
something obvious, 


no matter what I do, I always get the same error: Encryption key needed to 
decrypt password safe entry is unavailable


I dont see where the problem lies, error is that file can't be found in the 
catchall. I feel this is one of those "you're missing something simple" 
errors…or in the database somewhere?


- setup the realm
- setup the tokens
- setup the secrets
- confirmed the key matches the cert


Cert Tree


. Root (ADCS)
- | SubCA (OpenSSL)
  - | Data Vault
  - | SCEP


== import logic


echo "Starting server before running import ... "
openxpkictl start
echo "Running import ... "
openxpkiadm certificate import --file "${ROOT_CA_CERTIFICATE}"
# all certs issued under SubCA need to have SubCA imported first
openxpkiadm certificate import --file "${ISSUING_CA_CERTIFICATE}" --realm 
"${REALM}"
#Datavault and SCEP Issued under SubCA
openxpkiadm certificate import --file "${DATAVAULT_CERTIFICATE}" --realm 
"${REALM}" --token datasafe --key ${DATAVAULT_KEY}
###
# Generates error, key never gets created, same for SCEP
# per 
https://openxpki.readthedocs.io/en/stable/operation/tokenconfig.html#issuing-certificate
###
cp ${ISSUING_CA_KEY} /etc/openxpki/ca/${REALM}/ca-signer-1.pem
chown openxpki:openxpki /etc/openxpki/ca/${REALM}/ca-signer-1.pem
###
#link key to SubCA cert
openxpkiadm alias --realm "${REALM}" --token certsign  --file 
"${ISSUING_CA_CERTIFICATE}" --key ${ISSUING_CA_KEY} 
sleep 1;
openxpkiadm certificate import --file "${SCEP_CERTIFICATE}" --realm "${REALM}" 
--token scep  --key ${SCEP_KEY}




==== Output of each step


== first import data vault, fails, to replicate logic of sampleconfig.sh


root@can-lx-intca-01:~# openxpkiadm certificate import --file 
"${DATAVAULT_CERTIFICATE}" --realm "${REALM}" --token datasafe --key 
${DATAVAULT_KEY}
Starting import
2020/10/12 10:33:50 Unable to find issuer; __query__ => $VAR1 = {
          'subject_key_identifier' => 
'72:17:D7:42:FE:73:DE:09:B9:7D:58:B5:16:98:E6:2E:24:B0:8D:B3'
        };
Unable to find issuer
   __query__: $VAR1 = {
          'subject_key_identifier' => 
'72:17:D7:42:FE:73:DE:09:B9:7D:58:B5:16:98:E6:2E:24:B0:8D:B3'
        };


=== import SubCA


root@can-lx-intca-01:~# openxpkiadm alias --realm "${REALM}" --file 
"${ISSUING_CA_CERTIFICATE}" 
Successfully created alias in realm dev:
  Alias     : ca-signer-1
  Identifier: 6j87PRoXumH_EEamEXfVGfgidzk
  NotBefore : 2020-10-09 22:53:09
  NotAfter  : 2041-10-09 23:03:09


Token is certsign, looking for root...
Creating alias for root ca:
  Alias     : root-1
  Identifier: VkBjvHQvHV6Flt0T-ESDSm3Av4g
  NotBefore : 2020-10-05 11:52:00
  NotAfter  : 2050-10-06 11:52:00


== import data vault, ket gets created on FS per crypto.yaml


root@can-lx-intca-01:~# openxpkiadm certificate import --file 
"${DATAVAULT_CERTIFICATE}" --realm "${REALM}" --token datasafe --key 
${DATAVAULT_KEY}
Starting import
Successfully imported certificate into database:
  Subject:    CN=DEV LinuxCA Internal DataVault
  Issuer:     CN=Enterprises DEV Intermediate Linux CA,OU=PKI,O=Enterprises,C=CA
  Identifier: f9BVEDgua8xsUVKBpPzD_JpQeHA
  Realm:      dev


Successfully created alias in realm dev:
  Alias     : vault-1
  Identifier: f9BVEDgua8xsUVKBpPzD_JpQeHA
  NotBefore : 2020-10-09 23:27:14
  NotAfter  : 2030-10-12 23:27:14


Successfully wrote key to /etc/openxpki/ca/vault-1.pem




=== link issuing CA, import key.


=root@can-lx-intca-01:~# openxpkiadm alias --realm "${REALM}" --token certsign  
--file "${ISSUING_CA_CERTIFICATE}" --key ${ISSUING_CA_KEY} 
Successfully created alias in realm lawl_dev:
  Alias     : ca-signer-1
  Identifier: 6j87PRoXumH_EEamEXfVGfgidzk
  NotBefore : 2020-10-09 22:53:09
  NotAfter  : 2041-10-09 23:03:09


2020/10/12 13:07:30 Encryption key needed to decrypt password safe entry is 
unavailable
Error running command: Encryption key needed to decrypt password safe entry is 
unavailable at /usr/share/perl5/OpenXPKI/Client/Simple.pm line 352.


=== tail /var/log/openxpki/catchall.log


2020/10/12 13:07:20 openxpki.auth.INFO Login successful using authentication 
stack '_System' (user: 'anonymous', role: 'System') [pid=33186|sid=Y1Dz]
2020/10/12 13:07:30 openxpki.auth.INFO Login successful using authentication 
stack '_System' (user: 'anonymous', role: 'System') [pid=33188|sid=ZsEI]
2020/10/12 13:07:30 openxpki.system.ERROR OpenSSL error: 
140438229632128:error:08064066:object identifier routines:OBJ_create:oid 
exists:../crypto/objects/obj_dat.c:709:
unable to load signing key file
140438229632128:error:0D0AE0AB:asn1 encoding routines:oid_module_init:adding 
object:../crypto/asn1/asn_moid.c:38:
140438229632128:error:0E07606D:configuration file routines:module_run:module 
initialization error:../crypto/conf/conf_mod.c:177:module=oid_section, 
value=new_oids, retcode=-1      
140438229632128:error:06065064:digital envelope 
routines:EVP_DecryptFinal_ex:bad decrypt:../crypto/evp/evp_enc.c:570:
140438229632128:error:23077074:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 
cipherfinal error:../crypto/pkcs12/p12_decr.c:63:
140438229632128:error:2306A075:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 
pbe crypt error:../crypto/pkcs12/p12_decr.c:94:
140438229632128:error:0907B00D:PEM routines:PEM_read_bio_PrivateKey:ASN1 
lib:../crypto/pem/pem_pkey.c:88:
 [pid=33188|user=anonymous|role=System|sid=ZsEI]
2020/10/12 13:07:30 openxpki.system.ERROR 
I18N_OPENXPKI_CRYPTO_CLI_EXECUTE_FAILED; __EXIT_STATUS__ => 512 
[pid=33188|user=anonymous|role=System|sid=ZsEI]
2020/10/12 13:07:30 openxpki.system.ERROR I18N_OPENXPKI_TOOLKIT_COMMAND_FAILED; 
__COMMAND__ => OpenXPKI::Crypto::Backend::OpenSSL::Command::pkcs7_decrypt, 
__ERRVAL__ => I18N_OPENXPKI_CRYPTO_CLI_EXECUTE_FAILED; __EXIT_STATUS__ => 512 
[pid=33188|user=anonymous|role=System|sid=ZsEI]
2020/10/12 13:07:30 openxpki.system.ERROR Encryption key needed to decrypt 
password safe entry is unavailable; __token_id__ => vault-1 
[pid=33188|user=anonymous|role=System|sid=ZsEI]


=== Validation of key/cert


root@can-lx-intca-01:~# openssl pkey -in ${ISSUING_CA_KEY} -pubout -passin 
file:${ISSUING_CA_KEY_PASSWORD} | openssl md5
(stdin)= e1e9fc0f95f7d0efa4f327a27b405b7a
root@can-lx-intca-01:~# openssl x509 -pubkey -in ${ISSUING_CA_CERTIFICATE} 
-noout | openssl md5
(stdin)= e1e9fc0f95f7d0efa4f327a27b405b7a


openssl ec -in ${ISSUING_CA_KEY} -text  -passin 
file:"${ISSUING_CA_KEY_PASSWORD}"
read EC key
Private-Key: (384 bit)
priv:
    e0:...c8
pub:
    04:...:b5
ASN1 OID: secp384r1
NIST CURVE: P-384




===== config


root@can-lx-intca-01:~# cat /etc/openxpki/config.d/realm/test1/crypto.yaml 
#Sample Mockup Config for Token config of a single realm
# The left side are fixed aliases used in the code, the right side
# are aribtrary chosen names, referencing the tokens below.
type:
  certsign: ca-signer
  datasafe: vault
  scep: scep


# The actual token setup, based on current token.xml
token:
  default:
    backend: OpenXPKI::Crypto::Backend::OpenSSL


    # Template to create key, available vars are
    # ALIAS (ca-signer-1), GROUP (ca-signer), GENERATION (1)
    key: /etc/openxpki/ca/[% PKI_REALM %]/[% ALIAS %].pem


    # possible values are OpenSSL, nCipher, LunaCA
    engine: OpenSSL
    engine_section: ''
    engine_usage: ''
    key_store: OPENXPKI


    # OpenSSL binary location
    shell: /usr/bin/openssl


    # OpenSSL binary call gets wrapped with this command
    wrapper: ''


    # random file to use for OpenSSL
    randfile: /var/openxpki/rand


    # Default value for import, recorded in database, can be overriden
    #secret: default


#  ca-signer:
#    inherit: default
#    key_store: DATAPOOL
#    key: "[% ALIAS %]"


#  vault:
#    inherit: default
#    key: /etc/openxpki/ca/[% ALIAS %].pem


#  scep:
#    inherit: default
#    backend: OpenXPKI::Crypto::Tool::LibSCEP
#    key_store: DATAPOOL
#    key: "[% ALIAS %]"


  ca-signer:
    inherit: default
    key_store: DATAPOOL
    key: "[% ALIAS %]"
    secret: ca-signer


  vault:
    inherit: default
    key: /etc/openxpki/ca/[% ALIAS %].pem
    secret: vault


  scep:
    inherit: default
    backend: OpenXPKI::Crypto::Tool::LibSCEP
    key_store: DATAPOOL
    key: "[% ALIAS %]"
    secret: scep


# Define the secret groups
#Static Passwords for PEM at rest
#KeyNanny for HSM


secret:
    default:
        # this let OpenXPKI use the secret of the same name from system.crypto
        # if you do not want to share the secret just replace this line with
        # the config found in system.crypto. You can create additional secrets
        # by adding similar blocks with another key
        import: 1


    ca-signer:
        label: CA signer group
        export: 0
        method: literal
        value: AOP..eUM=


    vault:
        label: Vault group
        method: literal
        value: 9f..TAM=


    scep:
        label: SCEP group
        method: literal
        value: QUc..MQ=




_______________________________________________
OpenXPKI-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openxpki-users

Reply via email to