PowerShell: создание и экспорт самозаверяющего сертификата в Windows
PowerShell: создание и экспорт самозаверяющего сертификата в Windows

В современном цифровом мире обеспечение безопасности и целостности данных особенно важно. Сертификаты позволяют проверить происхождение данных и защитить их от подделки. В этой статье описывается, как создать и экспортировать самозаверяющий сертификат с помощью PowerShell в среде Windows.

Сертификаты и инфраструктура открытых ключей

Прежде чем мы начнем, давайте сначала узнаем об PKI.

Сертификат — это файл, содержащий открытый ключ и некоторую идентифицирующую информацию. существованиеPKI,Сертификаты выдаются доверенной третьей стороной (называемой центром сертификации).,CA), выданный из,Центр сертификации подтверждает личность владельца сертификата и связанного с ним открытого ключа. Однако,Мы также можем создать самозаверяющий сертификат, то есть сертификат подписан самим владельцем сертификата (а не центром сертификации).

Самозаверяющие сертификаты полезны во многих сценариях, особенно в средах тестирования и разработки. Однако, поскольку они не подписаны доверенным центром сертификации, использование самозаверяющих сертификатов в общедоступном Интернете может вызвать проблемы с доверием.

Создать самозаверяющий сертификат

существовать Windows , мы можем использовать PowerShell из New-SelfSignedCertificate cmdlet Приходить Создать самозаверяющий сертификат. Ниже приводится создание самозаверяющий пример сертификата:

Язык кода:javascript
копировать
$param = @{
    "DnsName" = "mylab.wang.io"; 
    "CertStoreLocation" = "Cert:\CurrentUser\My"; 
    "NotAfter" = (Get-Date).AddYears(10);
    "KeySpec" = "KeyExchange";
    "KeyExportPolicy" = "Exportable";
}
New-SelfSignedCertificate @param

Этот код создает новый самозаверяющий сертификат и назначает его текущему пользователю. "My" Сертификат находится на хранении.

  • Сертификат об имени субъекта (т.е. DNS имя) установлено на "mylab.wang.io"。
  • Сертификат действителен с текущей даты 10 Года.
  • Для параметра «KeySpec» установлено значение «KeyExchange», что указывает на то, что этот сертификат можно использовать для обмена ключами.
  • "KeyExportPolicy" Параметры установлены на «Экспортируемый» означает, что сертификат и закрытый ключ можно экспортировать.

Экспорт самозаверяющего сертификата

После создания сертификата,Мы можем экспортировать это в файл,Для использования в других устройствах или приложениях. существовать PowerShell , мы можем использовать Export-PfxCertificate и Export-Certificate cmdlets экспортировать сертификат.

Export-PfxCertificate cmdlet Экспортируйте сертификат и его закрытый ключ. PFX файл (также известный как PKCS#12 документ). Этот тип файла содержит всю информацию о сертификате, включая закрытый ключ, поэтому его необходимо защитить. Ниже приведен экспорт PFX Файл из примера:

Язык кода:javascript
копировать
Язык кода:javascript
копировать
$pwd = ConvertTo-SecureString -String "Admin_123456" -Force -AsPlainText
Get-ChildItem -Path 'Cert:\CurrentUser\My' | Where-Object { $_.Subject -match "mylab.wang.io" } | Export-PfxCertificate -FilePath C:\Users\Administrator\Desktop\cert\mylab.wang.io.pfx -Password $pwd

Этот код начинается с "My" Узнайте в хранилище сертификатов, что имя субъекта содержит "mylab.wang.io" изсертификат

Язык кода:javascript
копировать
забронировать и экспортировать его как PFX документ. Экспортированные файлы зашифрованы и защищены паролем. "Admin_123456"。

Export-Certificate cmdlet Тогда экспортный сертификат CER файл (также известный как X.509 Сертификат). Этот тип файла содержит только часть сертификата с открытым ключом и не содержит закрытого ключа, поэтому его можно использовать публично везде, где это необходимо. Ниже приведен экспорт CER Файл из примера:

Язык кода:javascript
копировать
Get-ChildItem -Path Cert:\CurrentUser\My\ | Where-Object { $_.Subject -match "mylab.wang.io" } | Export-Certificate -FilePath C:\Users\Administrator\Desktop\cert\mylab.wang.io.cer

Полный сценарий:

Язык кода:javascript
копировать
$param = @{
    "DnsName" = "mylab.wang.io"; 
    "CertStoreLocation" = "Cert:\CurrentUser\My"; 
    "NotAfter" = (Get-Date).AddYears(10);
    "KeySpec" = "KeyExchange";
    "KeyExportPolicy" = "Exportable";
}
New-SelfSignedCertificate @param
$pwd = ConvertTo-SecureString -String "Admin_123456" -Force -AsPlainText

Get-ChildItem -Path 'Cert:\CurrentUser\My' | Where-Object { $_.Subject -match "mylab.wang.io" } | Export-PfxCertificate -FilePath C:\Users\Administrator\Desktop\cert\mylab.wang.io.pfx -Password $pwd
Get-ChildItem -Path Cert:\CurrentUser\My\ | Where-Object { $_.Subject -match "mylab.wang.io" } | Export-Certificate -FilePath C:\Users\Administrator\Desktop\cert\mylab.wang.io.cer

Подвести итог

сертификат Книгазаключается в защите сетевых коммуникацийиданныеизважный инструмент。существовать Windows , мы можем использовать PowerShell создать и Экспорт самозаверяющего сертификата。虽然自签名сертификат Книгасуществоватьобщественный Интернетможет вызвать проблемы с доверием,Но они являются очень полезными инструментами в средах тестирования и разработки. Если вам нужен сертификат, который широко распространен в общедоступном Интернете,следует рассмотреть возможность начать с признанногоизсертификат Книга颁发机构获取сертификат Книга。

Надеюсь, вы нашли эту статью полезной,И узнал несколько новых трюков PowerShell! Если у вас есть какие-либо вопросы или вам нужно более подробное объяснение,Добро пожаловать, чтобы оставить сообщение в области комментариев

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода