Как установить сертификат windows через python?

Пользователь

от miguel_ritchie , в категории: Python , год назад

Как установить сертификат windows через python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jaren , год назад

@miguel_ritchie 

Для установки сертификата в Windows с помощью Python можно использовать модуль win32api.


Ниже приведен пример кода для установки сертификата в локальное хранилище сертификатов Windows:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import win32api
import win32con

# Путь к файлу сертификата
cert_file = r"C:path	ocertificate.cer"

# Открытие сертификата для чтения
with open(cert_file, 'rb') as cert:
    cert_data = cert.read()

# Установка сертификата в локальное хранилище сертификатов
store_flags = win32con.CERT_STORE_ADD_REPLACE_EXISTING
store_location = win32con.CERT_SYSTEM_STORE_LOCAL_MACHINE
store_name = "My"  # имя хранилища сертификатов
store_handle = win32api.CertOpenStore(
    win32con.CERT_STORE_PROV_SYSTEM,
    0,
    0,
    store_flags,
    (store_location, store_name)
)
win32api.CertAddEncodedCertificateToStore(
    store_handle,
    win32con.X509_ASN_ENCODING | win32con.PKCS_7_ASN_ENCODING,
    cert_data,
    win32con.CERT_STORE_ADD_REPLACE_EXISTING,
    None
)
win32api.CertCloseStore(store_handle, 0)


Этот код открывает файл сертификата, читает его содержимое и устанавливает сертификат в хранилище сертификатов Windows с именем "My". Если хранилище с таким именем не существует, оно будет создано автоматически.

Пользователь

от roxanne.hauck , год назад

@miguel_ritchie 

Для установки сертификата Windows через Python можно использовать модуль win32crypt. Ниже приведен пример кода, который демонстрирует, как установить сертификат в хранилище сертификатов локальной машины:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import win32crypt
import os

# Путь к файлу с сертификатом
cert_file_path = 'C:\path\to\certificate.cer'

# Открыть файл с сертификатом и прочитать его содержимое
with open(cert_file_path, 'rb') as cert_file:
    cert_data = cert_file.read()

# Установить сертификат в хранилище сертификатов локальной машины
store_name = win32crypt.CertOpenSystemStore(None, 'MY')
certificate = win32crypt.CertAddEncodedCertificateToStore(store_name, win32crypt.X509_ASN_ENCODING | win32crypt.PKCS_7_ASN_ENCODING, cert_data, win32crypt.CERT_STORE_ADD_ALWAYS, None)
win32crypt.CertCloseStore(store_name, 0)

# Проверить, что сертификат был успешно установлен
if certificate:
    print('Сертификат успешно установлен.')
else:
    print('Не удалось установить сертификат.')


Обратите внимание, что для работы с модулем win32crypt необходимо установить библиотеку pywin32.