У меня возникли трудности с отладкой приложения django/python, для которого требуется использовать открытый ключ для подписи сертификата. 1. Я создал ключ в формате PEM из моего секретного ключа с помощью следующей командыне удалось загрузить открытый ключ
openssl rsa -pubout -in ~/.ssh/id_rsa > samplePEMKey.pub
Ключ приводится ниже
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8K/LfOBi+QrINSseqWwc
JGo4uE49Dc42zF2Jwbmc6iXIln8AWX5M+yn15dYOXzbHGbopH8bpF9CsJ/DPHg87
D1At1XwAy5aR5w7pXE//5p/saW50Sm/eY6Nugs9hgAXUTcMMAEXCIG17dLoUzhwE
YdzuPm350h39bTmI7Fz95koTbsKJUi+6337GJ3cWKxMBkEmWvpGo4Nko01xtEnUZ
GweKexr1roE8jZPpzuNeUy+S5tvH5emyBIBdroBVxBtz1OUIoP0oAOrQ5RtRPAcT
TsSWjMtyF2gO5GxeMErRqnLAtWJs4QlaJacVnMMTAgRjrGkUZdsqngM/fjQXfeZV
SwIDAQAB
-----END PUBLIC KEY-----
В моем питона приложении я использую OpenSSL и попытке загрузить ключ с использованием
pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, samplePEMKey)
При запуске приложения django в приведенной выше строке появляется следующая ошибка.
Request Method: POST
Request URL: http://127.0.0.1:8000/snapshotuploader/single/
Django Version: 1.3.1
Exception Type: Error
Exception Value:
[('PEM routines', 'PEM_read_bio', 'no start line')]
Вот как я прочитал открытый ключ из файла
file_path = '/home/XXXX/co/certserver/LicenseServer/home_folder/dldl/samplePEMKey.pub'
try:
fin = open(file_path, 'r')
except IOError:
return HttpResponse('IO Error opening uploaded file.')
try:
samplePEMKey = fin.read()
fin.close()
except IOError:
return HttpResponse('IO Error reading uploaded file.')
Цените помощь в решении этого вопроса. Заранее спасибо.
По крайней мере 'Crypto.Cipher.RSA.importKey () 'работает с pycrypto-2.5 с ключом, который вы поставили, поэтому не должно быть ничего плохого в самом ключе. Как вы читаете ключ переменной 'samplePEMKey'? – Kimvais
file_path = '/home/XXXX/co/certserver/LicenseServer/home_folders/dldl/samplePEMKey.pub' \t печати pubKeyFile попробовать: плавник = открыт (file_path, 'г') кроме IOError: возвращение HttpResponse ('IO ошибки при открытии загруженного файла.) попробовать: Публичных = fin.read() fin.close() кроме IOError: возвращения HttpResponse (' IO ошибки при чтении загруженного файл.) –
Пожалуйста, измените вопрос для добавления соответствующего кода - также 'pubKey'! =' samplePEMKey' – Kimvais