Я хочу создать сервер MDM для управления моими устройствами iOS. Я зарегистрировался в программе iOS Enterprise Developer. И выполнил следующие команды openSSL
"1. Creating Certificate Authority (CA)"
openssl req -new -x509 -extensions v3_ca -keyout cakey.key -out cacert.crt -days 365
"2. Creating the Web Server private key and certificate request"
openssl genrsa 2048 > server.key
openssl req -new -key server.key -out server.csr
"3. Signing the server key with the CA. You'll the CA passphrase from step 1."
openssl x509 -req -days 365 -in server.csr -CA cacert.crt -CAkey cakey.key -CAcreateserial -out server.crt -extfile ./server.cnf -extensions ssl_server
"4. Creating the device Identity key and certificate request"
openssl genrsa 2048 > identity.key
openssl req -new -key identity.key -out identity.csr
"5. Signing the identity key with the CA. You'll the CA passphrase from step 1."
openssl x509 -req -days 365 -in identity.csr -CA cacert.crt -CAkey cakey.key -CAcreateserial -out identity.crt
openssl pkcs12 -export -out identity.p12 -inkey identity.key -in identity.crt -certfile cacert.crt
"6. Generating keys and certs for plist generation"
openssl req -inform pem -outform der -in identity.csr -out customer.der
Я загрузил сгенерированный файл identity.csr и получил сертификат MDM. С помощью customer.der, AppleWWDRCA.cer, AppleIncRootCertificate.cer, MDM.cer (полученного от iOS Enterprise Developer) и с помощью Identity.p12 я создал код Java для создания зашифрованного файла plist. Я использовал этот файл и получил APNSPushCert. Работало нормально.
Теперь проблема в том, что IP-адрес компьютера был изменен, и я не хочу создавать новый сертификат поставщика MDM.
Насколько я понимаю, единственное место, где я упоминаю IP, это server.cnf. Я изменил IP в server.cnf и выполнил все команды, кроме 4. Перед выполнением я поместил identity.key и identity.csr в одну папку. Теперь все работает нормально, но когда я загружаю закодированный файл plist для получения APNSPushCert, сайт говорит Ошибка проверки подписи сертификата.
Я действительно не понимаю, что пошло не так.
Файл customer.der - это файл, который постоянно меняется при каждом выполнении. Следовательно, файл customer.der, созданный в первый раз, используется снова. Теперь он работает нормально.