então galera muitas vezes precisamos gerar um certificado digital. Os certificado digitais são gerados por uma chave privada e dentro dele é composto por uma chave publica e algumas informações referente a ele (país, estado, cidade, autor, etc), ele pode ser auto assinado ou assinado por outro certificado (normalmente uma Autoridade Certificadora ~ CA). Para a gente criar um certificado digital auto assinado usando o openssl temos primeiro que gera uma chave privada, para isso usamos o parametro genrsa
com a chave privada gerada, basta gerar uma nova requisição de certificado com o parametro req, passamos como argumento o parametro -new indicando uma nova requisição, o parametro -days indicando o tempo em dias antes de expirar, o parametro -key com a nossa chave privada, tambem podemos usar o parametro -x509 para gerar o certificado de uma vez (se não teria que usar o parametro x509 e assinar com a nossa chave depois), depois disso ele vai pedir algumas informações (país, estado, cidade, empresa, setor, autor ou dominio, email)
é possivel exibir as informações do certificado usando o parametro x509, o parametro -in com o certificado e o -text para exibir as informações dele
é possivel exportar a chave publica de um certificaodo usando o parametro x509, com o -pubkey e -noout para ter apenas a saida da chave publica
podemos usar esse certificado para diversos fins, como exemplo uma comunicação criptografada por SSL
bom galera é isso ate o proximo tutorial \o
by kodo no kami
- Código:
openssl genrsa -des 2048 > kodorsa.key
com a chave privada gerada, basta gerar uma nova requisição de certificado com o parametro req, passamos como argumento o parametro -new indicando uma nova requisição, o parametro -days indicando o tempo em dias antes de expirar, o parametro -key com a nossa chave privada, tambem podemos usar o parametro -x509 para gerar o certificado de uma vez (se não teria que usar o parametro x509 e assinar com a nossa chave depois), depois disso ele vai pedir algumas informações (país, estado, cidade, empresa, setor, autor ou dominio, email)
- Código:
openssl req -new -x509 -days 365 -key kodorsa.key > kodo.crt
é possivel exibir as informações do certificado usando o parametro x509, o parametro -in com o certificado e o -text para exibir as informações dele
- Código:
openssl x509 -in kodo.crt -text
é possivel exportar a chave publica de um certificaodo usando o parametro x509, com o -pubkey e -noout para ter apenas a saida da chave publica
- Código:
openssl x509 -in kodo.crt -pubkey -noout
podemos usar esse certificado para diversos fins, como exemplo uma comunicação criptografada por SSL
- Código:
#!/usr/bin/python3
import ssl
import socket
sslc = ssl.SSLContext()
sslc.load_cert_chain(certfile="kodo.crt",keyfile="kodorsa.key")
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect(("192.168.1.1",10315))
sslsock = sslc.wrap_socket(sock)
sslsock.send(b"kodo kawaii")
print("msg criptografada enviada")
sslsock.close()
sock.close()
bom galera é isso ate o proximo tutorial \o
by kodo no kami