Базовое краткое изложение цепочек CA. Скажем, у вас есть сертификат безопасности, подтверждающий, что вы - example.com. Но никто не поверит тебе. Таким образом, вы получите подпись от кого-то, кому люди доверяют (Verisign в вашем примере выше). Теперь я считаю, что вы - example.com, потому что Verisign ручается за вас, подписав свой сертификат.
Обычно Verisign не подписывает его своим основным «корневым» сертификатом. Вместо этого они подпишут его ЦС второго уровня, а этот ЦС второго уровня подписан корневым сертификатом, которому я доверяю.
Это цепочка сертификатов: вы (example.com) подписаны ЦС второго уровня, подписанным корневым ЦС.
Итак, когда вы даете мне свой сертификат, вам также необходимо предоставить всю цепочку, чтобы я мог проверить ее до самого верха и посмотреть, действительно ли я вам доверяю.
Итак, следующая команда берет ваш файл .mobileconfig и подписывает его своим сертификатом. И я буду доверять вашей подписи, если вы предоставите всю цепочку.
Файлы:
* company.mobileconfig <- ваш файл .mobileconfig, который вы создали <br>
* signature.mobileconfig <- подписанный файл, который создается после выполнения команды <br>
* server.crt <- ваш сертификат, который вы получили от доверенного CA <br>
* server.key <- файл вашего личного ключа, который идет с сертификатом выше (хранить в безопасности) <br>
* cert-chain.crt <- все сертификаты находятся в цепочке вплоть до CA верхнего уровня, которому доверяют люди </p>
Команда:
openssl smime -sign -in company.mobileconfig -out signed.mobileconfig
-signer server.crt -inkey server.key -certfile cert-chain.crt
-outform der -nodetach