Создание сертификатов PKCS12: различия между версиями
(не показано 6 промежуточных версий 4 участников) | |||
Строка 39: | Строка 39: | ||
private_key = $dir/private/cakey.pem | private_key = $dir/private/cakey.pem | ||
default_days = 365 | default_days = 365 | ||
default_md = | default_md = sha256 | ||
preserve = no | preserve = no | ||
email_in_dn = yes # установите в no если не хотите чтобы поле email присутствовало в сертификате, | email_in_dn = yes # установите в no если не хотите чтобы поле email присутствовало в сертификате, | ||
# без поля email | # без поля email сертификат нельзя использовать для подписи и шифрования электронной почты! | ||
nameopt = default_ca | nameopt = default_ca | ||
certopt = default_ca | certopt = default_ca | ||
Строка 58: | Строка 58: | ||
default_bits = 1024 # Size of keys | default_bits = 1024 # Size of keys | ||
default_keyfile = key.pem # name of generated keys | default_keyfile = key.pem # name of generated keys | ||
default_md = | default_md = sha256 # message digest algorithm | ||
string_mask = nombstr # permitted characters | string_mask = nombstr # permitted characters | ||
distinguished_name = req_distinguished_name | distinguished_name = req_distinguished_name | ||
Строка 102: | Строка 102: | ||
==== Шаг 3. Создаём пользовательский сертификат ==== | ==== Шаг 3. Создаём пользовательский сертификат ==== | ||
Сначала зададим имя для файлов сертификата | Сначала зададим имя для файлов сертификата пользователя. Так как их может быть много, задание через переменную среды окружения позволит повторять этот шаг очень быстро для каждого пользователя. | ||
<pre>name='user1'</pre> | <pre>name='user1'</pre> |
Текущая версия от 18:56, 14 декабря 2020
Создание сертификатов PKCS12
Данная статья содержит краткое руководство для создания сертификатов PKCS12.
Такие сертификаты используются в качестве ключей на защищённых веб-страницах и в электронной подписи OpenOffice.org.
Основано на статье: Creating PKCS12 Certificates
Для того, чтобы создать сертификат, вам необходимо программное обеспечение openssl (если нет команды openssl, установите посредством команды apt-get install openssl).
Шаг 1. Подготавливаем место
Создайте каталог (например, cert) и перейдите в него. Выполните команды:
mkdir private mkdir certs echo '100001' >serial touch certindex.txt
В этом каталоге создаём файл конфигурации openssl.conf следующего содержимого:
# # OpenSSL configuration file. # # Establish working directory. dir = . [ ca ] default_ca = CA_default [ CA_default ] serial = $dir/serial database = $dir/certindex.txt new_certs_dir = $dir/certs certificate = $dir/cacert.pem private_key = $dir/private/cakey.pem default_days = 365 default_md = sha256 preserve = no email_in_dn = yes # установите в no если не хотите чтобы поле email присутствовало в сертификате, # без поля email сертификат нельзя использовать для подписи и шифрования электронной почты! nameopt = default_ca certopt = default_ca policy = policy_match [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional [ req ] default_bits = 1024 # Size of keys default_keyfile = key.pem # name of generated keys default_md = sha256 # message digest algorithm string_mask = nombstr # permitted characters distinguished_name = req_distinguished_name req_extensions = v3_req [ req_distinguished_name ] # Variable name Prompt string #------------------------- ---------------------------------- 0.organizationName = Organization Name (company) organizationalUnitName = Organizational Unit Name (department, division) emailAddress = Email Address emailAddress_max = 40 localityName = Locality Name (city, district) stateOrProvinceName = State or Province Name (full name) countryName = Country Name (2 letter code) countryName_min = 2 countryName_max = 2 commonName = Common Name (hostname, IP, or your name) commonName_max = 64 # Default values for the above, for consistency and less typing. # Variable name Value #------------------------ ------------------------------ 0.organizationName_default = Company localityName_default = Moscow stateOrProvinceName_default = Moscow countryName_default = RU emailAddress_default = email@domain.ru commonName_default = Common text [ v3_ca ] basicConstraints = CA:TRUE subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer:always [ v3_req ] basicConstraints = CA:FALSE subjectKeyIdentifier = hash
Шаг 2. Создаём сертификат сертифицирующей организации (CA)
openssl req -new -x509 -extensions v3_ca -keyout private/cakey.pem -out cacert.pem -days 365 -config ./openssl.conf
При запросе пароля указывайте пароль не менее 4 символов. На все остальные запросы можно нажать Enter.
Шаг 3. Создаём пользовательский сертификат
Сначала зададим имя для файлов сертификата пользователя. Так как их может быть много, задание через переменную среды окружения позволит повторять этот шаг очень быстро для каждого пользователя.
name='user1'
Теперь для каждого пользователя создаём сертификат PKCS12. Выполняйте по одной команде:
openssl req -new -nodes -out $name-req.pem -keyout private/$name-key.pem -days 365 -config ./openssl.conf
openssl ca -out $name-cert.pem -days 365 -config ./openssl.conf -infiles $name-req.pem
openssl pkcs12 -export -in $name-cert.pem -inkey private/$name-key.pem -certfile cacert.pem -name "description" -out $name-cert.p12
При запросе пароля указывайте пароль, заданный при создании сертификата CA. На все остальные запросы можно нажать Enter.
Готовый файл: user1-cert.p12
Этот файл можно импортировать в Firefox или Thunderbird, а потом использовать в OpenOffice.org.