Как заставить SSL Python 3.7 принимать 127.0.0.1? - PullRequest
0 голосов
/ 23 января 2019

Я начал изучать python и ssl и создать приложение для сокетов, используя библиотеку ssl python. Во-первых, он работает только в Python 3.6, а не в 3.7. После некоторого Google я обнаружил, что сопоставление IP-адреса с полем CN устарело в течение 15 лет. Как я могу создать файлы .crt и .key, которые принимают 127.0.0.1? Если возможно, как сделать так, чтобы они сами подписывались и чтобы другие ПК работали вместе.

Я пытался создать со следующим .conf

[req]
default_bits       = 4096
default_md         = sha512
default_keyfile    = server.key
prompt             = no
encrypt_key        = no
distinguished_name = req_distinguished_name
[req_distinguished_name]
C = BR
ST = RJ
L = VR
O = Kyuu
OU = Kaori
CN = 127.0.0.1
[v3_req]
keyUsage = keyEncipherment, dataEncipherment, digitalSignature
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = 127.0.0.1
DNS.2 = localhost

Obs :. Когда я использую s_client из OpenSSL, он работает

1 Ответ

0 голосов
/ 23 января 2019

После долгих поисков в гугле я нашел решение, использую файл conf.

Файл:

#
#Creating a self-signed certificate
#
####################################################################
[CA_default]
copy_extensions = copy

[req]
default_bits = 4096
prompt = no
default_md = sha256
days                   = 3650
serial                 = 1
distinguished_name     = req_distinguished_name
x509_extensions        = v3_ca


[req_distinguished_name]
C = 
ST = 
L = 
O = 
OU = 
CN = 

[ v3_ca ]
# The extentions to add to a self-signed cert
subjectKeyIdentifier   = hash
authorityKeyIdentifier = keyid:always,issuer:always
basicConstraints       = CA:TRUE
keyUsage               = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyAgreement, keyCertSign
subjectAltName         = @alternate_names
issuerAltName          = issuer:copy

[alternate_names]
DNS.0 = localhost

Команда:

req -config [ПУТЬ ЗДЕСЬ] -x509 -newkey rsa: 2048 -keyout key.key -nodes -out cert.crt

Путь похож на C: \ path \ to \ file

...