The following command has been used to generate test keys:
for x in 512 2048; do openssl genrsa -out rsa${k}_key.pem $k; done
For the elliptic curve private keys, this command was used:
for k in "prime256v1" "secp384r1" "secp521r1" do
openssl genpkey -algorithm ${k} -out ec_${k}_key.pem
done
and for the CSR PEM (Certificate Signing Request):
openssl req -new -out csr-Xsans_X.pem -key rsa512_key.pem [-config csr-Xsans_X.conf | -subj '/CN=example.com'] [-outform DER > csr_X.der]
and for the certificate:
openssl req -new -out cert_X.pem -key rsaX_key.pem -subj '/CN=example.com' -x509 [-outform DER > cert_X.der]
`csr-mixed.pem` was generated with pyca/cryptography using the following snippet:
from cryptography import x509
from cryptography.hazmat.primitives import hashes, serialization
k = serialization.load_pem_private_key(
open("./acme/acme/_internal/tests/testdata/rsa2048_key.pem", "rb").read(), None
)
csr = (
x509.CertificateSigningRequestBuilder().add_extension(
x509.SubjectAlternativeName([x509.DNSName('a.exemple.com'), x509.IPAddress(ipaddress.ipaddr('192.0.2.111'))]),
critical=False
).subject_name(
x509.Name([])
).sign(
k, hashes.SHA256()
)
)
open("./acme/acme/_internal/tests/testdata/csr-mixed.pem", "wb").write(
csr.public_bytes(serialization.Encoding.PEM)
)
|