mirror of
https://github.com/FreeOpcUa/opcua-asyncio
synced 2025-10-29 17:07:18 +08:00
generate certificate chain (test data)
This commit is contained in:
35
examples/certificates/chain/client.cert.pem
Normal file
35
examples/certificates/chain/client.cert.pem
Normal file
@@ -0,0 +1,35 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
8023REA7jOm3Mm5X/3LDOdyI
|
||||
-----END CERTIFICATE-----
|
||||
51
examples/certificates/chain/client.key.pem
Normal file
51
examples/certificates/chain/client.key.pem
Normal file
@@ -0,0 +1,51 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
234
examples/certificates/chain/gen_chain.py
Normal file
234
examples/certificates/chain/gen_chain.py
Normal file
@@ -0,0 +1,234 @@
|
||||
from datetime import UTC, datetime, timedelta
|
||||
from pathlib import Path
|
||||
|
||||
from cryptography import x509
|
||||
from cryptography.hazmat.primitives import hashes, serialization
|
||||
from cryptography.hazmat.primitives.asymmetric import rsa
|
||||
from cryptography.x509.oid import NameOID
|
||||
|
||||
OUT_DIR = Path(".")
|
||||
|
||||
ROOT_CA_DAYS = 365 * 10
|
||||
INTERMEDIATE_CA_DAYS = 365 * 10
|
||||
LEAF_CERT_DAYS = 365 * 10
|
||||
VALIDITY_OFFSET = timedelta(days=1)
|
||||
|
||||
ORG_NAME = "OPC UA"
|
||||
COUNTRY = "CZ"
|
||||
STATE = "Some State"
|
||||
CITY = "Some City"
|
||||
ORG_UNIT = "Lib"
|
||||
|
||||
COMMON_NAME_ROOT = "Python OPC UA Root"
|
||||
COMMON_NAME_INTERMEDIATE1 = "Python OPC UA Inter 1"
|
||||
COMMON_NAME_INTERMEDIATE2 = "Python OPC UA Inter 2"
|
||||
|
||||
|
||||
def save_key_pem(key: rsa.RSAPrivateKey, file: Path) -> None:
|
||||
pem = key.private_bytes(
|
||||
encoding=serialization.Encoding.PEM,
|
||||
format=serialization.PrivateFormat.TraditionalOpenSSL,
|
||||
encryption_algorithm=serialization.NoEncryption(),
|
||||
)
|
||||
file.with_suffix(".key.pem").write_bytes(pem)
|
||||
|
||||
|
||||
def save_cert_pem(cert: x509.Certificate, file: Path) -> None:
|
||||
file.with_suffix(".cert.pem").write_bytes(cert.public_bytes(serialization.Encoding.PEM))
|
||||
|
||||
def save_cert_der(cert: x509.Certificate, file: Path) -> None:
|
||||
file.with_suffix(".cert.der").write_bytes(cert.public_bytes(serialization.Encoding.DER))
|
||||
|
||||
def generate_private_rsa_key() -> rsa.RSAPrivateKey:
|
||||
"""Generates an RSA private key."""
|
||||
private_key = rsa.generate_private_key(
|
||||
public_exponent=65537,
|
||||
key_size=4096,
|
||||
)
|
||||
|
||||
return private_key
|
||||
|
||||
|
||||
def create_subject_name(common_name) -> x509.Name:
|
||||
"""Creates an X.509 Name object for the certificate subject."""
|
||||
return x509.Name(
|
||||
[
|
||||
x509.NameAttribute(NameOID.COUNTRY_NAME, COUNTRY),
|
||||
x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, STATE),
|
||||
x509.NameAttribute(NameOID.LOCALITY_NAME, CITY),
|
||||
x509.NameAttribute(NameOID.ORGANIZATION_NAME, ORG_NAME),
|
||||
x509.NameAttribute(NameOID.ORGANIZATIONAL_UNIT_NAME, ORG_UNIT),
|
||||
x509.NameAttribute(NameOID.COMMON_NAME, common_name),
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
def generate_root_certificate() -> tuple[x509.Certificate, rsa.RSAPrivateKey]:
|
||||
private_key = generate_private_rsa_key()
|
||||
|
||||
public_key = private_key.public_key()
|
||||
builder = x509.CertificateBuilder()
|
||||
|
||||
subject_name = create_subject_name(COMMON_NAME_ROOT)
|
||||
builder = builder.subject_name(subject_name)
|
||||
builder = builder.issuer_name(subject_name)
|
||||
|
||||
builder = builder.not_valid_before(datetime.now(UTC) - VALIDITY_OFFSET)
|
||||
builder = builder.not_valid_after(datetime.now(UTC) - VALIDITY_OFFSET + timedelta(days=ROOT_CA_DAYS))
|
||||
|
||||
builder = builder.serial_number(x509.random_serial_number())
|
||||
builder = builder.public_key(public_key)
|
||||
|
||||
builder = builder.add_extension(
|
||||
x509.SubjectKeyIdentifier.from_public_key(public_key),
|
||||
critical=False,
|
||||
)
|
||||
builder = builder.add_extension(
|
||||
x509.AuthorityKeyIdentifier.from_issuer_public_key(public_key),
|
||||
critical=False,
|
||||
)
|
||||
builder = builder.add_extension(
|
||||
x509.BasicConstraints(ca=True, path_length=None),
|
||||
critical=True,
|
||||
)
|
||||
|
||||
certificate = builder.sign(
|
||||
private_key=private_key,
|
||||
algorithm=hashes.SHA256(),
|
||||
)
|
||||
|
||||
return certificate, private_key
|
||||
|
||||
|
||||
def generate_inter_certificate(
|
||||
issuer_cert: x509.Certificate,
|
||||
issuer_cert_private_key: rsa.RSAPrivateKey,
|
||||
common_name: str,
|
||||
) -> tuple[x509.Certificate, rsa.RSAPrivateKey]:
|
||||
private_key = generate_private_rsa_key()
|
||||
|
||||
public_key = private_key.public_key()
|
||||
builder = x509.CertificateBuilder()
|
||||
|
||||
builder = builder.subject_name(create_subject_name(common_name))
|
||||
|
||||
builder = builder.issuer_name(issuer_cert.subject)
|
||||
|
||||
builder = builder.not_valid_before(datetime.now(UTC) - VALIDITY_OFFSET)
|
||||
builder = builder.not_valid_after(datetime.now(UTC) - VALIDITY_OFFSET + timedelta(days=INTERMEDIATE_CA_DAYS))
|
||||
|
||||
builder = builder.serial_number(x509.random_serial_number())
|
||||
builder = builder.public_key(public_key)
|
||||
|
||||
builder = builder.add_extension(
|
||||
x509.SubjectKeyIdentifier.from_public_key(public_key),
|
||||
critical=False,
|
||||
)
|
||||
ski_ext = issuer_cert.extensions.get_extension_for_class(x509.SubjectKeyIdentifier)
|
||||
builder = builder.add_extension(
|
||||
x509.AuthorityKeyIdentifier.from_issuer_subject_key_identifier(ski_ext.value),
|
||||
critical=False,
|
||||
)
|
||||
builder = builder.add_extension(
|
||||
x509.BasicConstraints(ca=True, path_length=None),
|
||||
critical=True,
|
||||
)
|
||||
builder = builder.add_extension(
|
||||
x509.KeyUsage(
|
||||
digital_signature=True,
|
||||
key_cert_sign=True,
|
||||
crl_sign=True,
|
||||
content_commitment=False,
|
||||
key_encipherment=False,
|
||||
data_encipherment=False,
|
||||
key_agreement=False,
|
||||
encipher_only=False,
|
||||
decipher_only=False,
|
||||
),
|
||||
critical=True,
|
||||
)
|
||||
|
||||
certificate = builder.sign(
|
||||
private_key=issuer_cert_private_key,
|
||||
algorithm=hashes.SHA256(),
|
||||
)
|
||||
|
||||
return certificate, private_key
|
||||
|
||||
|
||||
def generate_leaf_certificate(
|
||||
issuer_cert: x509.Certificate,
|
||||
issuer_cert_private_key: rsa.RSAPrivateKey,
|
||||
common_name: str | None,
|
||||
uris: list[str] | None = None,
|
||||
) -> tuple[x509.Certificate, rsa.RSAPrivateKey]:
|
||||
private_key = generate_private_rsa_key()
|
||||
|
||||
public_key = private_key.public_key()
|
||||
builder = x509.CertificateBuilder()
|
||||
|
||||
builder = builder.subject_name(create_subject_name(common_name))
|
||||
builder = builder.issuer_name(issuer_cert.subject)
|
||||
|
||||
builder = builder.not_valid_before(datetime.now(UTC) - VALIDITY_OFFSET)
|
||||
builder = builder.not_valid_after(datetime.now(UTC) - VALIDITY_OFFSET + timedelta(days=LEAF_CERT_DAYS))
|
||||
|
||||
builder = builder.serial_number(x509.random_serial_number())
|
||||
builder = builder.public_key(public_key)
|
||||
|
||||
builder = builder.add_extension(
|
||||
x509.SubjectKeyIdentifier.from_public_key(public_key),
|
||||
critical=False,
|
||||
)
|
||||
ski_ext = issuer_cert.extensions.get_extension_for_class(x509.SubjectKeyIdentifier)
|
||||
builder = builder.add_extension(
|
||||
x509.AuthorityKeyIdentifier.from_issuer_subject_key_identifier(ski_ext.value),
|
||||
critical=False,
|
||||
)
|
||||
|
||||
builder = builder.add_extension(
|
||||
x509.BasicConstraints(ca=False, path_length=None),
|
||||
critical=True,
|
||||
)
|
||||
|
||||
sans: list[x509.GeneralName] = [x509.UniformResourceIdentifier(uri) for uri in uris] if uris else []
|
||||
if sans:
|
||||
builder = builder.add_extension(x509.SubjectAlternativeName(sans), critical=False)
|
||||
|
||||
certificate = builder.sign(
|
||||
private_key=issuer_cert_private_key,
|
||||
algorithm=hashes.SHA256(),
|
||||
)
|
||||
|
||||
return certificate, private_key
|
||||
|
||||
|
||||
def main():
|
||||
root, root_key = generate_root_certificate()
|
||||
server, server_key = generate_leaf_certificate(
|
||||
root, root_key, "python-opcua-server.example.com", ["urn:example.org:FreeOpcUa:python-opcua-server"]
|
||||
)
|
||||
inter1, inter1_key = generate_inter_certificate(root, root_key, COMMON_NAME_INTERMEDIATE1)
|
||||
inter2, inter2_key = generate_inter_certificate(inter1, inter1_key, COMMON_NAME_INTERMEDIATE2)
|
||||
client, client_key = generate_leaf_certificate(
|
||||
inter2, inter2_key, "python-opcua-client.example.com", ["urn:example.org:FreeOpcUa:python-opcua-client"]
|
||||
)
|
||||
|
||||
save_cert_pem(root, OUT_DIR / "root")
|
||||
save_cert_der(root, OUT_DIR / "root")
|
||||
save_key_pem(root_key, OUT_DIR / "root")
|
||||
|
||||
save_cert_pem(server, OUT_DIR / "server")
|
||||
save_key_pem(server_key, OUT_DIR / "server")
|
||||
|
||||
save_cert_pem(inter1, OUT_DIR / "inter1")
|
||||
save_key_pem(inter1_key, OUT_DIR / "inter1")
|
||||
save_cert_pem(inter2, OUT_DIR / "inter2")
|
||||
save_key_pem(inter2_key, OUT_DIR / "inter2")
|
||||
|
||||
save_cert_pem(client, OUT_DIR / "client")
|
||||
save_key_pem(client_key, OUT_DIR / "client")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
34
examples/certificates/chain/inter1.cert.pem
Normal file
34
examples/certificates/chain/inter1.cert.pem
Normal file
@@ -0,0 +1,34 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
D+z/Zy1QhXYUpQmg
|
||||
-----END CERTIFICATE-----
|
||||
51
examples/certificates/chain/inter1.key.pem
Normal file
51
examples/certificates/chain/inter1.key.pem
Normal file
@@ -0,0 +1,51 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIJKQIBAAKCAgEAi2M86WDe/tOG++VIe1H6Wp/HqWq5q/AypEUseh/sot3KZ1lp
|
||||
mu5Ck2i0LzC/nthlP9RcVlPiq0K1slmyDGSTm7DtPdyJje90c6EsycVrmz4OXHsp
|
||||
dngSxWOZXcsKIY5i1OjZBSRl0SVc8QdGrowjdeBx3tj+AKngybDYDXgoOn1+uFY3
|
||||
aargZAcU1mVR7g1Dx1vxAa5qmCZdHMHNtWAar9n8uoVMc1lQfsMoMln4yPcwE93a
|
||||
+8hkOOMFvY5erOjYo0uwEML9Gqkg0HK6zDAV8I3F9W6L8zfXmklXDGmPUyF6i8K7
|
||||
ykQYJsRoO7wwzmiXZGTHv94Qy6ZZKvEKLBO8SmhDHMrktpK8pBGuDAxNAa5txGz5
|
||||
qok59Fo0cqqJtZi0kgM/VWFHb443sRyC7FC4ZS1gTZtBvvx3ujVOZR02PWWP1kIz
|
||||
71Ox9qhH+zOXj9fx011MWrxN2gZrBnGhgnUFeLawndPuowtpkHnm1wKh5ki4bz+U
|
||||
W8hw4FHbJq3lpzVFmRnt4/2rxhFLwSr/83aZmsJ1Q7i9d8UZ5KtaFiamZukBPss9
|
||||
GeAqpz6XJ52KCRdOyAgQ9+X9cciuInz03eQY+3Su8o47OCoUCkcyVMNrIE0je6k/
|
||||
Zw08/cAwJDabnlxRzg3Xd64hNhdUVmons+mpS81XnRI8viOXYSCeZGYSYfkCAwEA
|
||||
AQKCAgAGkTOkvEFtaKpuslAOrV9aBzapQwPB99Ru/Gpay6fCyafYZDRPTiP5XYDF
|
||||
y2pv0bq9feQm1hdzIba9UzAKGPACcRzQYhRiCVLngsPBMum9u/gBv/TFZeVegvGO
|
||||
I3uT9qkt5lWZQiyA5N2C5qicHzKpglxjFz6qadaTMh+PzOY6UUDX7wn30sr1M4c2
|
||||
DbqFOH9FxI1vmpffmMkgynnGbqN7Pw5C/HZMZfweqNO7QZVw5IKRoQ2I+NlN+9ZA
|
||||
ptVLmMHiObXvKDy0FZ1b7NfjuG1EMu3NgTqbSDmChauSBGQyErz7Gj7uSfSIWQ8f
|
||||
J1/2TaO6YWwu3EfWzHzdgtNLnddsaTuJelA6NsyVp7+Hi1P8so+OaYlSoDKKh04S
|
||||
e4o8G5VijwiPCOXhfbxgb0enzAdZYM7oaUPyFnO4baycBxg9vA4PptAcbNUmBOvy
|
||||
Ww4Lp+4H7FVglMBbIamhXrVP9DuzoQPvQX8KF1y95bXEh8rDn62cLbZd6lj/lTWf
|
||||
BSTHCfNgi7YICqqXRVvSTiVM6wUwRY0YxyI1wjZHSSQme5hgooos8/KhKgd0Pe3W
|
||||
/hkpg5rvXsZAnwsWDSDVkY0AIM09WJ7ot5HK564xFa0JpwAceL8bFnZXphe4zvvZ
|
||||
zBTa5vwIbk6qqNkPFwTdtzvJZew/Z+K8kxbZtgriyaXrexCXrQKCAQEAwvQRrPNP
|
||||
aqgtKLPOlOhy9p8eFPLHFvNgNdk4fLE6aAnR75bjJlpziLKkVt+WQ2OLWflAOURG
|
||||
ss5jPwZwFuA5FTFSOP50YSnIS45P1xQtBMqTxJj4vLZVeIWT7FOJ4DrypFHCSldx
|
||||
4IXJVTdQQliAbctafTvq8dscOjmyA5aQaqu/TboOezOymcKgbqEQumxzhewbcnhU
|
||||
i0ofpq6vqiknZbeEu4Eh5l1luoUowUO6Q7S/djt/eCjTvBGa6/yrmaMlzy04LeFm
|
||||
7jC0Xz2+jNVPZEF511RCsXYM9Cu/bKPtmfWq9E+jvyM6X6adk7iLtnsZ2ppa+WSo
|
||||
hiLJaMlxNOLrfQKCAQEAtwjitiqQ4MEKtTo4lit+Zt4imE2DSrbxLYe0VcoVmeDQ
|
||||
v4RgHkm0sKdBklTA4oSX0Vj7K4gARAolH0atEG2ziWgDKl8ErvSjLJRBN8sFo1IK
|
||||
kTF+TQiNXJs4lMsWPOU7So5sp0SbsSxs7CDnerkVENv47/uSqvDjT45eJ4m19NQ3
|
||||
7sTR0xYaucA/j0fPqQlVWuQfMpng98WnrOVNLczXeEbjRwGqHJ0LA25sjZ+R8HqN
|
||||
FMb9qKhQ2AlPQqgs1dcNjxmxDQxHi9hUB+gKWARQedIfiXZl4dRr4MByo+ZnyuJU
|
||||
xmguLZHa9lcViqKXN6qHv0hsSoMpVdsqDGGNPKmBLQKCAQEAv4nWl+rRWwPyomvO
|
||||
ioS69s0sW/6PVmA1ZZKOqgviS3dieJfxgqwZmPOS/PtdgcYakoKN8/W91E1sOu7T
|
||||
T9ZqnwS/ONnfc9r+PCWNEc5z0KJLfjuhHp+x5+CtjeIhs1mXLZRaZHn3m1U2ku/u
|
||||
fdDAFZ9Wv3YQBiF1YUtwN5BFQViOcwpa0fbgAauzvh2m9tI4yhpIeTX6MoPYBwbX
|
||||
9kHKwGgHE8XyjYezvAa6HO+y4HSEK+CXA3JxXPSbFkJAQomFS0CtUn6Dh3/4px5d
|
||||
ybaF8wVVdRcHE53dakRVJaMFfV9d3/0i71boMjPb29fUBKx7oUhIG4EnBerFoZtR
|
||||
C1nrbQKCAQAMzWpOI5wOnHILSw86McCdoVv6GzHbwAAOlzdd6Myp/rebLb8rXyxs
|
||||
TsafXZ5AOdYEppyq5tBd8fe2wFLKm2G7crMF+69wLVxceeI17NVwHwTuMvAKo1Z/
|
||||
67uBbNMZX09OX7fp2zqoodrciVCnnNqEW16GKqqPmlnL7sFXMqKvhUiEQvAKO7mS
|
||||
1IedlgBIaoa13M7x0yGRMxoPVdqYIYPQveSXyt4DMlja3JZrMYYbs/a6RVDowx0k
|
||||
f0Iz/19jda9VGw7vQrSea3s1Ml3G2kZmvvPFwapOqXUCO3PJUwxffIVBe3f/Z/xQ
|
||||
zraLA+Rf2GW2U3J/o7z4bGP8ibY/T/vhAoIBAQCdPabflFFvtWyVmvR94EOzNkAk
|
||||
zQAnbeX44wDtwnwK42xfq5E5FYhj+GkBI7v54L6Gt1TqYTwQ3agnFSx5CXXR86/I
|
||||
jSwyIforVSZjtUzu8j0zxc1vy+5sBZvv6PjIWX+62FbZzfvsnxN/2Uow5pTJtMyf
|
||||
EuQwOBsx1p9Za3POM65NH1qmr7e/YH6jO/O/3CRbt7vAac6Z8V+OK5BnvLqX5Lxo
|
||||
jBr1ADLgxH4RkLoxnzrgf4Gtt/Dvzeghj5CqWCaBC8r5vKZAsyvXeqB5c/hn0VJq
|
||||
Ybo8OJdB986Ynr/FaOTB4Ghb6sPMmlm7rKHnmpEFcbNPjX1yHRV0prwTyJmy
|
||||
-----END RSA PRIVATE KEY-----
|
||||
34
examples/certificates/chain/inter2.cert.pem
Normal file
34
examples/certificates/chain/inter2.cert.pem
Normal file
@@ -0,0 +1,34 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
vTU/KqUxO+HQc5/MRJWj
|
||||
-----END CERTIFICATE-----
|
||||
51
examples/certificates/chain/inter2.key.pem
Normal file
51
examples/certificates/chain/inter2.key.pem
Normal file
@@ -0,0 +1,51 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
BIN
examples/certificates/chain/root.cert.der
Normal file
BIN
examples/certificates/chain/root.cert.der
Normal file
Binary file not shown.
33
examples/certificates/chain/root.cert.pem
Normal file
33
examples/certificates/chain/root.cert.pem
Normal file
@@ -0,0 +1,33 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
-----END CERTIFICATE-----
|
||||
51
examples/certificates/chain/root.key.pem
Normal file
51
examples/certificates/chain/root.key.pem
Normal file
@@ -0,0 +1,51 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
35
examples/certificates/chain/server.cert.pem
Normal file
35
examples/certificates/chain/server.cert.pem
Normal file
@@ -0,0 +1,35 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
mplomai34Qjcex72FKzV
|
||||
-----END CERTIFICATE-----
|
||||
51
examples/certificates/chain/server.key.pem
Normal file
51
examples/certificates/chain/server.key.pem
Normal file
@@ -0,0 +1,51 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
Reference in New Issue
Block a user