Allow APNS key to be in unencrypted PKCS8 format (#24570)

#23760 

Manual QA done:
1. Get the current APNS key using tools/mdm/assets tool.
2. Convert it to a PKCS8 key like: `openssl pkcs8 -topk8 -inform PEM
-outform PEM -in mdm_assets/apns_key.key -out mdm_assets/apns_pkcs8.key
-nocrypt`
3. Delete all `apns` and `scep` rows from `mdm_config_assets` DB table.
4. Point to the PKCS8 key like:

```
export FLEET_MDM_APPLE_APNS_KEY=/Users/victor/work/fleet/mdm_assets/apns_pkcs8.key

export FLEET_MDM_APPLE_APNS_CERT=/Users/victor/work/fleet/mdm_assets/apns_cert.crt
export FLEET_MDM_APPLE_SCEP_CERT=/Users/victor/work/fleet/mdm_assets/ca_cert.crt
export FLEET_MDM_APPLE_SCEP_KEY=/Users/victor/work/fleet/mdm_assets/ca_key.key
export FLEET_MDM_APPLE_SCEP_CHALLENGE=$(cat /Users/victor/work/fleet/mdm_assets/scep_challenge)
```

This step may be tricky. Might be simpler to spin up a fresh Fleet
server with the SCEP/APNS values.

5. Start fleet server. Make sure APNS works by pushing/deleting a
profile.
6. Renew APNS cert and make sure the new cert still works.

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

<!-- Note that API documentation changes are now addressed by the
product design team. -->

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
- [x] Added/updated tests
- [x] Manual QA for all new/changed functionality
This commit is contained in:
Victor Lyuboslavsky
2024-12-09 16:23:22 -06:00
committed by GitHub
parent 990700acd4
commit 25d9a2b043
8 changed files with 155 additions and 6 deletions
+27
View File
@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAlfWPfYkhMEbyhaMh/BEAsqpYVh9WkS3e3Ru/QbSzracRrSd+
OfIsWSrPSCS+TvazQ9K8WkyciqVPawlOSF5G8eeqSSvzBlS8FLCuEYXk6OJMuGpT
2ccm9oFfhOeTWIkmcoKRCw4aHhpAEQRw9BPd5ks3YmxqEz8DebT55Wv/TegMWeRR
AV+CHCjHgoF+0woCRJG9+0sPxhKxKITLjU1tNvkaEoyjaEEXs/MjlRlKlzvBcOm8
kewd44QEv1iU1ne0q4yUQZA4f6WHKrQ/Wc7bQNnOP8LUkX1PS4TP35no8m+3pj02
Bg0S2uQzJW24Kj7ge0aHG0rdTEPwXWcUuMKYEwIDAQABAoIBACNWU+NlspvxRAoo
yIPhL9RqXtmgleItOITLGpUts1+a7IfstAqMnlW+yEy8V9o8uT6kxLzUq9jiHqZe
8YMNMFOl31NR13lo808+2S4I6snUNfcJG0xI6U4Sa4NinK6y1wwJ54r+3jm0vt8j
uEhT/CjeFaWMXay+Xx/JfU/KVMWzKgZ+fOkzGauDPHzKQvC8wCs8XZLOOcSAUfBU
zjG3D338utMjUEQPvNsVRBuxpRmvXxhs3+41rrPpb5jr/97fatgn9GVdXciX6Iug
sts2McE6EYllYRhLELqwS72VPBVklL6qtK3I2IDOPiA380LzHe8uUKh8+MWxysV3
R3dbMSkCgYEAx3BQiPG0O0bjtaVy08UqBuOQtH2C8Rd/SEc9Mx3gP2akwRiJQEl9
1AX45lVn4Ak91MEFIFtA7+uWpj9YY+vYi+7nByZh8v1CPukIsDLqyLdbjlKMXIfk
JgBbsLi9X8WD+ZJqzNJJ5sl9nZhJQXnOR/KqKtHEA82bL7AVmUKyeDkCgYEAwHzt
EHsmt1YWdv0DRJpTLIlzRO6YxqgcCN24TqtUdbr5pu4Xp1OTWelnBQvx88DZZtny
vn4R/0ERp7I1oyfqwt1OSpZj0dJ9pzs1pGNR5IN6ktn14wULnR44nzdKC8vtwRca
2mD3W9BxAPF0RZMVs0Il4/pUgrSZJXmKZAUKmqsCgYBzscHmT2CganU6MKo2E1BY
Arc1HQJS3bCmuzzTZGdsIB0/Lv6f3oIx9uz2oWDK5FGMFBTnOkinZWFVO7YI8Q4D
zykSSr/Td/twBztVC5SLr2JbY6OtId/F87s8/05MOoZexwNRokPgr85BF9CXPRPf
RPRWNq2hDysRNPKyn7BscQKBgQCzE8ZNXfVP/YRa4NqoeVbGCX429C8oKoAic3wj
nFuwR+o5NirFXgipTm6skEdh+dmISV3/gTRnH/c356DlEJ7k+ZT76Vwmeciyy3AF
Zu1qRjPD6YlL0obSfqo43exCe0/PIxq1bh7SyWJIeVot3EAFDJZJubvj+fa8mY15
rgMGjwKBgQC5dLj3XinPAMfSe8ZOsD9xZN5t9gSQmYQ2tvQxj0aAT0dWNlqCx5N0
g8W99LX11lzfORB3e2McgJHsaRRjumbFtwDEkDHj4A1GneuZdCEW879c+Gl3pckJ
726WrUCUWeDJgDnaGJYBqC/UbfHEqYwOksHpZMvjbLxL/+3wOYbv3A==
-----END RSA PRIVATE KEY-----
+18
View File
@@ -0,0 +1,18 @@
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIC3TBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIkErtXjGCalMCAggA
MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBApOUG3MKrBC/5bDBH/s5VfBIIC
gN5o1aJxvJYbp2oA/quz+BnCFn8ts3wPPOcqarHddy0L/VH3BdqFNbnPZEaDnvDl
kqChRsti4AAeX18ItMeAyNLNFv0J4mfI8Q5E7iEnPp+dTsZqNfVIJe2NGxOS7zp2
oQQIZVgjW0akDehv6ZDN796qDBlMY2g80wbBrzVgMJu/byG9IQQjngUE9QNGwrsj
7lYSprxjfTZOk1aGBD0d/HsmetIJvCeJ2i/5xAiGgZRrSWMC6aN7Zlra3eIvHQTB
aKZ8/0IT3iKSr6FpkEopOQae8biiTEVGw9D339P3qOSs2ChWWF+OV2sEA67w6q5j
pz6Poc5jgq4FOcf06GdcVa4tst2uykNJCW0wHpcUR1Tr9ILLhrZPYBYVQWW53Eee
o4+mqW2YORdG3a/jLHpEjL0Vdg95QNpdZoMv8plotN1MUBLebd05aCe5hJUb/x74
3GTwmRGmKoHOhOO3hhUaMCmZIg1xPlNT3jqxrZDoATBeONbaFP8OOkeucVYHbdUO
Ad7z6J8XuZDoxM0BVrGykEiQL2nAOccdsGoC33C9hjkqgU8G9jWElbynJlVqv+1a
lFHWjX5lB6ueiY/rClpVlLmXGB83OVPlo70FV0B9rhRChyB1IJJRYPFDJHSHJNu+
Pqay8zw82Gh/G+TWH/JCLm5YjX55ZSFMUmvwOLaxyQpmAGNH6dIBTAaSctVA7UrV
jm7m+5T7seiNYNEi19vDJipgr0GbX8+np47VrsJDxsS20wTeA/9ltD0xXwNrEKHd
2Nv/1OaCgnBQHIGULgEn9pT3/vU87bBHYjVdrWoUmqd9zFYtdImQE9u8IKTxTe4R
UPRGHqltz4uOjbD1epkSGe0=
-----END ENCRYPTED PRIVATE KEY-----
+28
View File
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCV9Y99iSEwRvKF
oyH8EQCyqlhWH1aRLd7dG79BtLOtpxGtJ3458ixZKs9IJL5O9rND0rxaTJyKpU9r
CU5IXkbx56pJK/MGVLwUsK4RheTo4ky4alPZxyb2gV+E55NYiSZygpELDhoeGkAR
BHD0E93mSzdibGoTPwN5tPnla/9N6AxZ5FEBX4IcKMeCgX7TCgJEkb37Sw/GErEo
hMuNTW02+RoSjKNoQRez8yOVGUqXO8Fw6byR7B3jhAS/WJTWd7SrjJRBkDh/pYcq
tD9ZzttA2c4/wtSRfU9LhM/fmejyb7emPTYGDRLa5DMlbbgqPuB7RocbSt1MQ/Bd
ZxS4wpgTAgMBAAECggEAI1ZT42Wym/FECijIg+Ev1Gpe2aCV4i04hMsalS2zX5rs
h+y0CoyeVb7ITLxX2jy5PqTEvNSr2OIepl7xgw0wU6XfU1HXeWjzTz7ZLgjqydQ1
9wkbTEjpThJrg2KcrrLXDAnniv7eObS+3yO4SFP8KN4VpYxdrL5fH8l9T8pUxbMq
Bn586TMZq4M8fMpC8LzAKzxdks45xIBR8FTOMbcPffy60yNQRA+82xVEG7GlGa9f
GGzf7jWus+lvmOv/3t9q2Cf0ZV1dyJfoi6Cy2zYxwToRiWVhGEsQurBLvZU8FWSU
vqq0rcjYgM4+IDfzQvMd7y5QqHz4xbHKxXdHd1sxKQKBgQDHcFCI8bQ7RuO1pXLT
xSoG45C0fYLxF39IRz0zHeA/ZqTBGIlASX3UBfjmVWfgCT3UwQUgW0Dv65amP1hj
69iL7ucHJmHy/UI+6QiwMurIt1uOUoxch+QmAFuwuL1fxYP5kmrM0knmyX2dmElB
ec5H8qoq0cQDzZsvsBWZQrJ4OQKBgQDAfO0Qeya3VhZ2/QNEmlMsiXNE7pjGqBwI
3bhOq1R1uvmm7henU5NZ6WcFC/HzwNlm2fK+fhH/QRGnsjWjJ+rC3U5KlmPR0n2n
OzWkY1Hkg3qS2fXjBQudHjifN0oLy+3BFxraYPdb0HEA8XRFkxWzQiXj+lSCtJkl
eYpkBQqaqwKBgHOxweZPYKBqdTowqjYTUFgCtzUdAlLdsKa7PNNkZ2wgHT8u/p/e
gjH27PahYMrkUYwUFOc6SKdlYVU7tgjxDgPPKRJKv9N3+3AHO1ULlIuvYltjo60h
38Xzuzz/Tkw6hl7HA1GiQ+CvzkEX0Jc9E99E9FY2raEPKxE08rKfsGxxAoGBALMT
xk1d9U/9hFrg2qh5VsYJfjb0LygqgCJzfCOcW7BH6jk2KsVeCKlObqyQR2H52YhJ
Xf+BNGcf9zfnoOUQnuT5lPvpXCZ5yLLLcAVm7WpGM8PpiUvShtJ+qjjd7EJ7T88j
GrVuHtLJYkh5Wi3cQAUMlkm5u+P59ryZjXmuAwaPAoGBALl0uPdeKc8Ax9J7xk6w
P3Fk3m32BJCZhDa29DGPRoBPR1Y2WoLHk3SDxb30tfXWXN85EHd7YxyAkexpFGO6
ZsW3AMSQMePgDUad65l0IRbzv1z4aXelyQnvbpatQJRZ4MmAOdoYlgGoL9Rt8cSp
jA6Swelky+NsvEv/7fA5hu/c
-----END PRIVATE KEY-----
+3
View File
@@ -0,0 +1,3 @@
-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VuBCIEIIBy1s9qwcgQqJsrkOeQ9W5smjPait9cF8LHDcYQt/BK
-----END PRIVATE KEY-----