Создание сертификатов для тестирования TLS
При разработке использования программного обеспечения защищенной сети Transport Layer Security (TLS) иногда необходимо создать сервер и клиент цифровые идентификационные данные для тестирования. Этот документ показывает, как сделать то использование Ассистента Сертификата, это встроено к OS X.
В то время как этот документ фокусируется на TLS, также необходимо при использовании HTTPS (HTTP по TLS) или TLS's кузен старшего возраста, Уровень защищенных сокетов (SSL).
Необходимо считать этот документ при создании OS X или программы iOS, использующей TLS, SSL или HTTPS, и необходимо установить тестовый сервер или создать тестовый клиент цифровые идентификационные данные.
Введение
Transport Layer Security (TLS), вместе с более старым Уровнем защищенных сокетов (SSL), является самыми важными безопасными сетевыми протоколами и на OS X и на iOS. При разработке клиентской программы, использующей TLS, иногда необходимо установить сервер для тестирования против, и это требует, чтобы у Вас был сервер TLS цифровые идентификационные данные. В других случаях необходимо иметь клиент TLS цифровые идентификационные данные для тестирования. Этот документ показывает, как создать обе из этих вещей с помощью Ассистента Сертификата, это встроено к OS X.
Основной подход, описанный в этом документе:
создайте центр сертификации
используйте это для выпуска цифровых идентификационных данных
экспортируйте получающиеся цифровые сертификаты и цифровые идентификационные данные по мере необходимости
Остающиеся разделы этого документа содержат подробные инструкции для каждого из этих шагов. Создание Центра сертификации показывает как создаванию центра сертификации с помощью Ассистента Сертификата. Выпуск Цифровых Идентификационных данных показывает, как использовать тот центр сертификации для выпуска TLS цифровые идентификационные данные. Экспорт Корневого Сертификата Центра сертификации показывает, как экспортировать корневой сертификат центра сертификации; обычно Вы делаете это так, чтобы можно было импортировать корневой сертификат в клиентскую машину так, чтобы он доверял сертификатам, выпущенным центром сертификации. Экспорт Цифровых Идентификационных данных показывает, как экспортировать одни из цифровых идентификационных данных, выпущенных центром сертификации.
Этот документ был записан и протестирован на OS X 10.9 Индивидуалистов. Ассистент сертификата изменил немногим более, чем годы, таким образом, некоторые вещи будут немного отличаться в более старых системах. Однако базовые понятия, описанные здесь, допустимы для всех версий OS X.
Можно также использовать openssl инструмент (в частности его подкоманда CA) для управления центром сертификации. Это имеет намного больше функций, чем Ассистент Сертификата, несмотря на то, что также намного более трудно использовать. Если Вы просто выполняете полномочия свидетельства об испытании, Ассистент Сертификата является Вашим лучшим выбором. При выполнении производственного центра сертификации необходимо оценить другие опции, включая openssl инструмент.
Создание центра сертификации
Первый шаг в этом процессе должен создать центр сертификации. Ассистент сертификата делает это удивительно простым. В этом разделе описываются процесс поэтапно.
A. Доступ цепочки для ключей запуска
В Средстве поиска выберите Go> Utilities, затем найдите Доступ Цепочки для ключей и запустите его.
B. Ассистент сертификата запуска
В Доступе Цепочки для ключей удостоверьтесь, что ничто не выбрано в панели справа, и затем выберите Keychain Access> Certificate Assistant> Create a Certificate Authority. Это запустит Ассистент Сертификата.
C. Основы центра сертификации
В Ассистенте Сертификата заполните панель Create Your Certificate Authority как показано на рисунке 1 и затем нажмите Continue.

Установите это в имя Вашего центра сертификации; в этом примере мы используем «MouseCA».
Это должно принять значение по умолчанию к Сам Корень Со знаком CA; оставьте его в этом.
Значение, которое Вы используете здесь, действительно не имеет значения, потому что Вы переопределяете его каждый раз, когда Вы выпускаете цифровые идентификационные данные. Однако лучше устанавливать это в тип идентификационных данных, которые этот центр сертификации выпустит в большинстве случаев. Так, при установке центра сертификации исключительно для выпуска сервера TLS цифровые идентификационные данные, выберите SSL Server здесь. Аналогично, если Ваш фокус находится на клиенте TLS цифровые идентификационные данные, выберите SSL Client.
Проверьте это.
Это должно быть проверено по умолчанию.
Введите надлежащий адрес электронной почты здесь. Этот адрес электронной почты испекся в корневой сертификат центра сертификации, поэтому если Вы планируете раздать тот корневой сертификат, удостоверьтесь, что Вы используете адрес, что Вы не возражаете быть spammed.
D. Информация о сертификате (1)
Заполните панель Certificate Information как показано на рисунке 2 и затем нажмите Continue.

Не изменяйте этот элемент; посмотрите обсуждение порядковых номеров ниже.
Значение по умолчанию здесь составляет 365 дней. Вы обычно хотите увеличить это так, чтобы корневой сертификат Вашего центра сертификации оставался допустимым в течение длительного времени. Самая простая вещь сделать, добавляет нуль до конца, сохраняющий корневой сертификат Вашего центра сертификации допустимым в течение примерно 10 лет.
Это не должно быть проверено; оставьте его тем путем.
Снимите флажок с этим.
E. Информация о сертификате (2)
Вторая панель Certificate Information должна принять значение по умолчанию к рыночной стоимости, как показано на рисунке 3, поэтому просто нажать Continue.

F. Примите много значений по умолчанию
Следующие 10 панелей все значение по умолчанию к рыночной стоимости. Продолжите щелчок по Continue, пока кнопка Continue не превратится в кнопку Create (на панели Specify a Location For The Certificate).
G. Укажите расположение
Последняя панель, которую Вы видите прежде, чем создать центр сертификации, является панелью Specify a Location For The Certificate, как показано на рисунке 4. Рассмотрите элементы ниже и затем, когда Вы готовы, нажмите Create.

Это принимает значение по умолчанию к Вашей цепочке для ключей по умолчанию. Если Вы хотите использовать различную цепочку для ключей для разделения элементов цепочки для ключей центра сертификации от ежедневных элементов цепочки для ключей, можно выбрать ее здесь.
Это не должно быть проверено; оставьте его тем путем.
H. Заключение
После того, как Ассистент Сертификата создал Ваш центр сертификации, Вы будете видеть панель Conclusion, показанную на рисунке 5. Теперь закройте Окно помощника Сертификата.

I. Подтвердите элементы цепочки для ключей
После закрытия Окна помощника Сертификата необходимо вернуться в Доступе Цепочки для ключей. Необходимо подтвердить, что корневой сертификат центра сертификации, и закрытый ключ с открытым ключом присутствует в цепочке для ключей, как показано на рисунке 6.

Выпуск цифровых идентификационных данных
Как только Вы создали свой центр сертификации, можно использовать его для выпуска цифровых идентификационных данных. В этом разделе описываются процесс для выпуска сервера TLS цифровые идентификационные данные, вызывая вещи, отличающиеся для клиента TLS цифровые идентификационные данные.
A. Доступ цепочки для ключей запуска
В Средстве поиска выберите Go> Utilities, затем найдите Доступ Цепочки для ключей и запустите его.
B. Ассистент сертификата запуска
В Доступе Цепочки для ключей удостоверьтесь, что ничто не выбрано в панели справа, и затем выберите Keychain Access> Certificate Assistant> Create a Certificate. Это запустит Ассистент Сертификата.
C. Основы сертификата
В Ассистенте Сертификата заполните панель Create Your Certificate как показано на рисунке 7 и затем нажмите Continue.

Установите это в человекочитаемое имя для сервера.
Установите это для Покрытий листвой.
Установите это в Сервер SSL.
Проверьте это.
Если Вы создаете клиент TLS цифровые идентификационные данные, элемент набора 1 к имени что идентификационные данные клиент и элемент 3 Клиенту SSL, как показано на рисунке 8.

D. Информация о сертификате (1)
Заполните панель Certificate Information как показано на рисунке 9 и затем нажмите Continue.

Не изменяйте этот элемент; см. комментарии ниже.
Значение по умолчанию здесь составляет 365 дней, который является разумным выбором для выпущенного сертификата. Если сертификат истекает, можно всегда переиздавать его.
В теории необходимо быть в состоянии вручную ввести порядковый номер для сертификата, который будет выпущен (некоторые люди используют порядковые номера с определенным форматом, например, сертификат, выпущенный 4 октября 2013 в 23:58, мог бы иметь порядковый номер как 201310042358), но это не работает (r. 15157073).
Если Вы хотите вынудить Ассистент Сертификата использовать определенный порядковый номер, можно установить LastSerialNumberUsed свойство в конфигурационном файле центра сертификации к значению меньше, чем порядковый номер Вы хотите.
E. Информация о сертификате (2)
Заполните вторую панель Certificate Information как показано на рисунке 10 и затем нажмите Continue.

Введите то же имя, которое Вы использовали на шаге C. Основы сертификата.
Другие поля здесь являются информационными, и можно заполнить их, или нет, как Вы считаете целесообразным. Например, для клиента TLS цифровые идентификационные данные Вы могли бы заполнить поля как показано на рисунке 11.

F. Выберите эмитент
В панели Choose An Issuer выберите центр сертификации, что Вы хотите выпустить сертификат — на рисунке 12, мы только имеем один, центр сертификации «MouseCA», который мы создали в Создании Центра сертификации — и нажимаем Continue.

G. Примите некоторые значения по умолчанию
Следующие четыре панели все значение по умолчанию к рыночной стоимости. Нажмите Continue, пока Вы не доберетесь до панели Subject Alternate Name Extension.
H. Подчиненное расширение альтернативного названия
Заполните панель Subject Alternate Name Extension как показано на рисунке 13 и затем нажмите Continue.

Это должно быть проверено; оставьте его тем путем.
Это не должно быть проверено; оставьте его тем путем.
Оставьте это незаполненное.
Оставьте это незаполненное.
Введите имя DNS сервера здесь, если это имеет тот.
Если сервер не имеет имени DNS, введите его IP-адрес здесь.
При выпуске клиентских идентификационных данных Вы не можете или включать Подчиненное Расширение Альтернативного названия (путем снятия выделения с элементом 1), или можно включать один с адресом электронной почты (элемент 3) или URL (элемент 4), оставляя другие незаполненные поля.
I. Укажите расположение
Последняя панель, которую Вы видите прежде, чем выпустить сертификат, является панелью Specify a Location For The Certificate, как показано на рисунке 14. Рассмотрите элемент ниже и затем, когда Вы готовы, нажмите Create.

Это принимает значение по умолчанию к Вашей цепочке для ключей по умолчанию. Если Вы хотите использовать различную цепочку для ключей для разделения выпущенных элементов цепочки для ключей от ежедневных элементов цепочки для ключей, можно выбрать ее здесь.
J. Заключение
После того, как Ассистент Сертификата выпустил сертификат, Вы будете видеть панель Conclusion, показанную на рисунке 15. Теперь закройте Окно помощника Сертификата.

K. Подтвердите элементы цепочки для ключей
После закрытия Окна помощника Сертификата необходимо вернуться в Доступе Цепочки для ключей. Необходимо подтвердить, что выпущенный сертификат и его связанные открытые и закрытые ключи присутствуют в цепочке для ключей, как показано на рисунке 16.

Экспорт цифровых сертификатов и идентификационных данных
Как только у Вас есть эти цифровые сертификаты и идентификационные данные в Вашей цепочке для ключей, можно экспортировать их для использования в тестах. В этом разделе описываются различные сценарии экспорта.
Экспорт корневого сертификата центра сертификации
Экспорт корневого сертификата центра сертификации довольно прост. В этом разделе описываются процесс поэтапно.
A. Доступ цепочки для ключей запуска
В Средстве поиска выберите Go> Utilities, затем найдите Доступ Цепочки для ключей и запустите его.
B. Выберите корневой сертификат
В Доступе Цепочки для ключей выберите корневой сертификат центра сертификации, как показано рисунком 17.

Выберите корректную цепочку для ключей в списке Цепочек для ключей. Это будет Вашей цепочкой для ключей входа в систему, если Вы не создали отдельную цепочку для ключей для своих элементов цепочки для ключей центра сертификации.
Выберите Всю категорию Элементов.
Выберите корневой сертификат центра сертификации в списке элемента цепочки для ключей.
C. Экспорт
Выберите File> Export Items. Это переводит в рабочее состояние лист, показанный на рисунке 18. Установите свои опции экспорта и затем нажмите Save.

Введите имя файла для экспорта в. В случае имя по умолчанию взято с имени сертификата и довольно надлежащее.
Необходимо всегда выбирать Certificate (.cer) здесь, независимо от заключительного формата, в котором Вы нуждаетесь.
D. Преобразуйте, если необходимо
Некоторые криптографические инструментарии, как Концепция безопасности на OS X и iOS, работают лучше всего с сертификатами в их двоичной форме. Другие инструментарии, прежде всего OpenSSL, предпочитают сертификаты в текстовой форме. Шаг B всегда экспортирует сертификат в двоичной форме. Если Вы хотите его в текстовой форме, используйте openssl инструмент командной строки для преобразования его. Перечисление 1 показывает, как сделать это, предположив, что Вы экспортировали сертификат как MouseCA.cer.
Перечисление 1 Преобразовывает сертификат от двоичного файла до текста
$ openssl x509 -inform DER -in MouseCA.cer -out MouseCA.pem |
Текстовая форма сертификата известна как PEM. Стандартное расширение файла .pem. Файлы PEM могут содержать больше, чем просто сертификаты. Файл PEM, содержащий просто сертификат обычно, имеет расширение .crt (и да, который означает, что .crt может использоваться и для двоичных и для текстовых форм!).
Экспорт цифровых идентификационных данных
В этом разделе описываются шаги, должен был экспортировать цифровые идентификационные данные, выпущенные Вашим центром сертификации.
A. Доступ цепочки для ключей запуска
В Средстве поиска выберите Go> Utilities, затем найдите Доступ Цепочки для ключей и запустите его.
B. Выберите цифровые идентификационные данные
В Доступе Цепочки для ключей выберите цифровые идентификационные данные для экспорта, как показано рисунком 19.

Выберите корректную цепочку для ключей в списке Цепочек для ключей. Это будет Вашей цепочкой для ключей входа в систему, если Вы не создали отдельную цепочку для ключей для своих элементов цепочки для ключей центра сертификации.
Выберите Мою категорию Сертификатов.
Выберите цифровые идентификационные данные для экспорта в списке элемента цепочки для ключей.
C. Экспорт
Выберите File> Export Items. Это переводит в рабочее состояние лист, показанный на рисунке 20. Установите свои опции экспорта и затем нажмите Save.

Введите имя файла для экспорта в. Именем по умолчанию здесь являются бесполезно универсальные «Сертификаты», таким образом, это - хорошая идея ввести от имени цифровых идентификационных данных, Вы экспортируете.
Необходимо всегда выбирать Personal Information Exchange (.p12) здесь, независимо от заключительного формата, в котором Вы нуждаетесь. Это создает файл PKCS#12, который можно преобразовать в надлежащий формат позже.
D. Пароль PKCS#12
Следующий шаг, как показано рисунком 21, должен ввести пароль для защиты закрытого ключа, встроенного в файл PKCS#12. Необходимо выбрать пароль, это подходяще для уровня безопасности, в которой Вы нуждаетесь. Если закрытый ключ ограничил значение (например, Вы только используете эти цифровые идентификационные данные для тестирования), нормально вводить очень простой пароль (на рисунке 21, пароль был «тестом»).
Введите этот пароль PKCS#12 один раз в каждое из полей и затем нажмите «OK».

E. Пароль цепочки для ключей
Наконец, необходимо ввести пароль цепочки для ключей для цепочки для ключей, содержащей цифровые идентификационные данные, как показано рисунком 22. Это авторизовывает экспорт цифровых идентификационных данных от цепочки для ключей. Как только Вы ввели пароль, нажмите Allow.

F. Преобразуйте, если необходимо
Если криптографический инструментарий Вы сделаны, Вы используете работы с файлами PKCS#12 непосредственно. При необходимости в цифровых идентификационных данных в некотором другом формате необходимо будет преобразовать его. Например, если Вы хотите использовать цифровые идентификационные данные для установки Apache, необходимо извлечь сертификат, и закрытый ключ как отдельные файлы PEM (сертификат обычно входит /etc/apache2/server.crt и закрытый ключ входит /etc/apache2/server.key). Перечисление 2 показывает, как использовать openssl инструмент, чтобы сделать это преобразование.
Перечисление 2 , Извлекающее цифровые идентификационные данные для использования с Apache
$ # First extract the server certificate. |
$ |
$ openssl pkcs12 -in "Deep Thought.p12" -nokeys -out server.crt |
Enter Import Password: **** |
MAC verified OK |
$ |
$ # Next extract the server private key. |
$ |
$ openssl pkcs12 -in "Deep Thought.p12" -nocerts -nodes -out server.key |
Enter Import Password: **** |
MAC verified OK |
В обоих случаях необходимо ввести пароль PKCS#12 от шага D. Пароль PKCS#12.
История версии документа
| Дата | Примечания |
|---|---|
| 13.02.2014 | Новый документ, описывающий, как использовать Ассистент Сертификата для создания сертификатов для TLS (или SSL) тестирование. |