Je veux codesign
une de mes applications en utilisant mon propre certificat (non créé avec Keychain Access).
D'abord, je crée un v3.ext
fichier :
keyUsage = digitalSignature
Ensuite, j'ai créé mon certificat avec openssl
:
$ openssl genrsa -des3 -out passkey.key 2048
$ openssl rsa -in passkey.key -out mykey.key
$ openssl req -new -key mykey.key -out cert.csr
$ openssl x509 -req -sha256 -extfile v3.ext -days 3650 -in cert.csr -signkey mykey.key -out mycertificate.crt
$ openssl pkcs12 -export -in mycertificate.crt -inkey mykey.key -out certificate.p12 -name "My Company Name"
J'ai importé certificate.p12
dans Keychain Access en le faisant glisser sur le docker. Maintenant, lorsque j'essaie de signer mon application, j'ai cette erreur :
$ security find-identity
Policy: X.509 Basic
Matching identities
11) 5DC3086CAD3848A22FB6E614FB8836BDDBD18938 "My Company Name" (CSSMERR_TP_NOT_TRUSTED)
$ codesign --deep -fs 5DC3086CAD3848A22FB6E614FB8836BDDBD18938 repro.app
: this identity cannot be used for signing code
Cependant, nous pouvons voir que ce certificat peut être utilisé pour vérifier ( CSSM_KEYUSE_VERIFY
) :
$ certtool y
Serial Number : 00 F6 E2 FC FC D1 67 A6 7A
Issuer Name :
Country : FR
State : Some-State
Org : My Company Name
Subject Name :
Country : FR
State : Some-State
Org : My Company Name
Cert Sig Algorithm : OID : < 06 09 2A 86 48 86 F7 0D 01 01 0B >
alg params : 05 00
Not Before : 15:09:59 May 13, 2019
Not After : 15:09:59 May 10, 2029
Pub Key Algorithm : OID : < 06 09 2A 86 48 86 F7 0D 01 01 01 >
alg params : 05 00
Pub key Bytes : Length 270 bytes : 30 82 01 0A 02 82 01 01 ...
CSSM Key :
Algorithm : RSA
Key Size : 2048 bits
Key Use : CSSM_KEYUSE_VERIFY
Signature : 256 bytes : 4E F5 B9 35 9D 6A D5 2E ...
Extension struct : OID : < 06 03 55 1D 0F >
Critical : FALSE
usage : DigitalSignature
Que dois-je faire pour permettre à cette identité de signer le code ?