J'essaye de générer un CSR en Python sans utiliser OpenSSL. Si quelqu'un pouvait pointer dans la bonne direction, je serais très reconnaissant.Générer un CSR en Python
Répondre
Comme n'importe quel langage, Python implémente seulement des algorithmes. Je ne connais presque rien à la cryptographie, mais si je devais l'implémenter en Python, je chercherais une spécification sur la façon d'implémenter la RSE.
Via Google et Wikipedia, j'ai trouvé this RFC. Votre tâche serait de l'implémenter en Python.
Personnellement, j'essaierais probablement d'abord d'utiliser l'outil de ligne de commande (peut-être via un appel à la fonction system()
s'il devait provenir de Python).
m2crypto peut être une solution (voir CreateX509Request in the contrib example), même si elle repose sur OpenSSL. Vous pouvez également utiliser python-nss, qui utilise Mozilla's NSS library. nss.nss.CertificateRequest
a été ajouté récemment. La documentation de l'API disponible pour le moment sur le site ne sont pas à jour, mais voici quelques conseils pour les versions plus récentes:
- http://koji.fedoraproject.org/koji/packageinfo?packageID=6444
- http://koji.fedoraproject.org/koji/buildinfo?buildID=185589
Il est aussi dans CVS:
:pserver:[email protected]:/cvsroot/mozilla/security/python/nss
J'ai commencé à implémenter un générateur CSR en utilisant PyCrypto et PyASN1 au cours des derniers jours. Le premier code est disponible à https://github.com/jandd/python-pkiutils
Je suppose que vous ne voulez pas utiliser la ligne de commande openssl elle-même et une librairie Python est ok.
Voici une fonction auxiliaire que j'ai écrite pour créer un CSR. Il renvoie la clé privée de la paire de clés générée et du CSR. La fonction dépend de pyOpenSSL.crypto.
def create_csr(self, common_name, country=None, state=None, city=None,
organization=None, organizational_unit=None,
email_address=None):
"""
Args:
common_name (str).
country (str).
state (str).
city (str).
organization (str).
organizational_unit (str).
email_address (str).
Returns:
(str, str). Tuple containing private key and certificate
signing request (PEM).
"""
key = OpenSSL.crypto.PKey()
key.generate_key(OpenSSL.crypto.TYPE_RSA, 2048)
req = OpenSSL.crypto.X509Req()
req.get_subject().CN = common_name
if country:
req.get_subject().C = country
if state:
req.get_subject().ST = state
if city:
req.get_subject().L = city
if organization:
req.get_subject().O = organization
if organizational_unit:
req.get_subject().OU = organizational_unit
if email_address:
req.get_subject().emailAddress = email_address
req.set_pubkey(key)
req.sign(key, 'sha256')
private_key = OpenSSL.crypto.dump_privatekey(
OpenSSL.crypto.FILETYPE_PEM, key)
csr = OpenSSL.crypto.dump_certificate_request(
OpenSSL.crypto.FILETYPE_PEM, req)
return private_key, csr
- 1. Comment décoder un fichier CSR?
- 2. Générer un fichier python
- 3. Génération CSR: Tomcat ou Apache?
- 4. Comment générer TrueLicence en Python
- 5. Générer UUID pour Cassandra en Python
- 6. Comment générer un hachage de casse en Python?
- 7. Comment générer un flux audio en utilisant gst-python?
- 8. générer une chaîne javascript en python
- 9. Générer une paire de clés de certificat X.509 et une demande de signature (CSR) en C#
- 10. Renouveler le certificat avec Java Keytool - réutiliser l'ancien CSR?
- 11. trigger mod_sec sur la règle CSR _23
- 12. Python: Comment générer une touche?
- 13. Python - générer le décalage horaire
- 14. Python: générer un graphe pour un réseau social
- 15. Pouvons-nous générer des tonalités DTMF en utilisant python?
- 16. Générer plusieurs nombres aléatoires pour égaler une valeur en python
- 17. Générer par programme une vidéo ou GIF animé en Python?
- 18. Aidez-nous à générer l'API Facebook "Sig" en Python
- 19. générer des noms de variables à la volée en python
- 20. Comment générer un HMAC en Java équivalent à un exemple Python?
- 21. Comment puis-je générer des nombres aléatoires en Python?
- 22. Comment générer plusieurs scripts python à partir d'un programme python?
- 23. générer du code Tkinter python compilé
- 24. Python: Comment générer un graphique de loi de puissance
- 25. Comment générer un navigateur
- 26. Métaprogrammation Python: générer automatiquement des fonctions membres
- 27. génération de CSR pour le processus d'enregistrement de l'application quickbook
- 28. Aide à l'ajout d'un CSR dans iPhone Portal
- 29. Bibliothèque Python pour générer des fichiers VCF?
- 30. Bibliothèque Pure Python pour générer des Identicons?
N'êtes-vous pas en mesure d'utiliser une boîte à outils, ou simplement OpenSSL? PKCS # 10 (format de requête cert) est assez simple si vous avez accès à un codeur ASN.1. –