diff options
| author | hc <hc@email.ch> | 2024-11-20 12:51:33 +0800 |
|---|---|---|
| committer | hc <hc@email.ch> | 2024-11-20 12:51:33 +0800 |
| commit | 853b82126baa1e8e408a10f91053c52626ffad29 (patch) | |
| tree | 2fc1de9695810681ba654aab3c2a4867aacc1ac7 | |
| parent | b1f88b682624e85b4b743343dfaaeed113b69413 (diff) | |
working
52 files changed, 1744 insertions, 134 deletions
diff --git a/config_files/certificate-authority/certs/root.crt b/config_files/certificate-authority/certs/root.crt new file mode 100644 index 0000000..9bbdff0 --- /dev/null +++ b/config_files/certificate-authority/certs/root.crt | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | -----BEGIN CERTIFICATE----- | ||
| 2 | MIICYDCCAeagAwIBAgIUKzrohjd0kem8ZlOdZ3Z/WCacRW4wCgYIKoZIzj0EAwQw | ||
| 3 | XzELMAkGA1UEBhMCc2cxCzAJBgNVBAgMAmhpMQswCQYDVQQKDAJoaTEhMB8GA1UE | ||
| 4 | CwwYaGkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRMwEQYDVQQDDApoaSBSb290IENB | ||
| 5 | MB4XDTI0MTExMjE5Mjg1OFoXDTM0MTExMDE5Mjg1OFowXzELMAkGA1UEBhMCc2cx | ||
| 6 | CzAJBgNVBAgMAmhpMQswCQYDVQQKDAJoaTEhMB8GA1UECwwYaGkgQ2VydGlmaWNh | ||
| 7 | dGUgQXV0aG9yaXR5MRMwEQYDVQQDDApoaSBSb290IENBMHYwEAYHKoZIzj0CAQYF | ||
| 8 | K4EEACIDYgAEDu8tCkFEHPtSprQKEp+QNUxEMQHPPYAqOtLFYLQrgZV862d/tCms | ||
| 9 | 2ZN610YgJ4Q2jzPoG+OT75/cA66bqfRik0GY6Uc/YIzXVjFIdnLPv36w0gUnazdZ | ||
| 10 | 7J3U95JZ9006o2MwYTAdBgNVHQ4EFgQUNSN4SMcTIdbae4OEkVZowIMhGqUwHwYD | ||
| 11 | VR0jBBgwFoAUNSN4SMcTIdbae4OEkVZowIMhGqUwDwYDVR0TAQH/BAUwAwEB/zAO | ||
| 12 | BgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwQDaAAwZQIwDwyap3b/a6em5Q2AOCf7 | ||
| 13 | sWJfyC1WW/6UAZ3smu5LT5zd+nBeuiQ5OinIWm8xAXUDAjEAxjDUWD1avBtFV6sw | ||
| 14 | FHb91laAakaee7EgVkEng1kqEkzza9cNGghek2aIPV5nHXH+ | ||
| 15 | -----END CERTIFICATE----- | ||
diff --git a/config_files/certificate-authority/config/create_intermediate_csr.ini b/config_files/certificate-authority/config/create_intermediate_csr.ini new file mode 100644 index 0000000..1929141 --- /dev/null +++ b/config_files/certificate-authority/config/create_intermediate_csr.ini | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | [ req ] | ||
| 2 | # Options for the `req` tool (`man req`). | ||
| 3 | default_bits = 4096 | ||
| 4 | distinguished_name = req_distinguished_name | ||
| 5 | string_mask = utf8only | ||
| 6 | prompt = no | ||
| 7 | |||
| 8 | # SHA-1 is deprecated, so use SHA-2 instead. | ||
| 9 | [ v3_ca ] | ||
| 10 | # Extensions for a typical CA (`man x509v3_config`). | ||
| 11 | subjectKeyIdentifier = hash | ||
| 12 | authorityKeyIdentifier = keyid:always,issuer | ||
| 13 | basicConstraints = critical, CA:true | ||
| 14 | keyUsage = critical, digitalSignature, cRLSign, keyCertSign | ||
| 15 | default_md = sha512 | ||
| 16 | |||
| 17 | [ req_distinguished_name ] | ||
| 18 | C = SG | ||
| 19 | ST = singapore | ||
| 20 | O = company name | ||
| 21 | OU = companyname Certificate Authority | ||
| 22 | CN = hi Intermediate CA | ||
diff --git a/config_files/certificate-authority/config/create_root_cert.ini b/config_files/certificate-authority/config/create_root_cert.ini new file mode 100644 index 0000000..3321dd4 --- /dev/null +++ b/config_files/certificate-authority/config/create_root_cert.ini | |||
| @@ -0,0 +1,55 @@ | |||
| 1 | [ ca ] | ||
| 2 | # `man ca` | ||
| 3 | default_ca = CA_default | ||
| 4 | |||
| 5 | [ CA_default ] | ||
| 6 | # Directory and file locations. | ||
| 7 | dir = /opt/certificate-authority | ||
| 8 | certs = $dir/certs | ||
| 9 | crl_dir = $dir/crl | ||
| 10 | new_certs_dir = $dir/newcerts | ||
| 11 | database = $dir/index.txt | ||
| 12 | serial = $dir/serial | ||
| 13 | |||
| 14 | # SHA-1 is deprecated, so use SHA-2 instead. | ||
| 15 | default_md = sha512 | ||
| 16 | |||
| 17 | name_opt = ca_default | ||
| 18 | cert_opt = ca_default | ||
| 19 | default_days = 375 | ||
| 20 | preserve = no | ||
| 21 | policy = policy_strict | ||
| 22 | |||
| 23 | [ policy_strict ] | ||
| 24 | # The root CA should only sign intermediate certificates that match. | ||
| 25 | # See the POLICY FORMAT section of `man ca`. | ||
| 26 | countryName = match | ||
| 27 | stateOrProvinceName = match | ||
| 28 | organizationName = match | ||
| 29 | organizationalUnitName = optional | ||
| 30 | commonName = supplied | ||
| 31 | emailAddress = optional | ||
| 32 | |||
| 33 | [ req ] | ||
| 34 | # Options for the `req` tool (`man req`). | ||
| 35 | default_bits = 4096 | ||
| 36 | distinguished_name = req_distinguished_name | ||
| 37 | string_mask = utf8only | ||
| 38 | prompt = no | ||
| 39 | |||
| 40 | # SHA-1 is deprecated, so use SHA-2 instead. | ||
| 41 | default_md = sha512 | ||
| 42 | |||
| 43 | [ req_distinguished_name ] | ||
| 44 | C = sg | ||
| 45 | ST = hi | ||
| 46 | O = hi | ||
| 47 | OU = hi Certificate Authority | ||
| 48 | CN = hi Root CA | ||
| 49 | |||
| 50 | [ v3_ca ] | ||
| 51 | # Extensions for a typical CA (`man x509v3_config`). | ||
| 52 | subjectKeyIdentifier = hash | ||
| 53 | authorityKeyIdentifier = keyid:always,issuer | ||
| 54 | basicConstraints = critical, CA:true | ||
| 55 | keyUsage = critical, digitalSignature, cRLSign, keyCertSign | ||
diff --git a/config_files/certificate-authority/config/fullchain.crt b/config_files/certificate-authority/config/fullchain.crt new file mode 100644 index 0000000..d17d14e --- /dev/null +++ b/config_files/certificate-authority/config/fullchain.crt | |||
| @@ -0,0 +1,55 @@ | |||
| 1 | -----BEGIN CERTIFICATE----- | ||
| 2 | MIIEEzCCA5mgAwIBAgIUdPIUkJpPJEojUqKFG8wPExCcuA4wCgYIKoZIzj0EAwQw | ||
| 3 | gYExCzAJBgNVBAYTAlNHMRIwEAYDVQQIDAlzaW5nYXBvcmUxFTATBgNVBAoMDGNv | ||
| 4 | bXBhbnkgbmFtZTEqMCgGA1UECwwhY29tcGFueW5hbWUgQ2VydGlmaWNhdGUgQXV0 | ||
| 5 | aG9yaXR5MRswGQYDVQQDDBJoaSBJbnRlcm1lZGlhdGUgQ0EwHhcNMjQxMTEyMTk0 | ||
| 6 | ODE3WhcNMjUxMTIyMTk0ODE3WjBoMQswCQYDVQQGEwJVUzESMBAGA1UECAwJWW91 | ||
| 7 | clN0YXRlMREwDwYDVQQHDAhZb3VyQ2l0eTEZMBcGA1UECgwQWW91ck9yZ2FuaXph | ||
| 8 | dGlvbjEXMBUGA1UEAwwOeW91cmRvbWFpbi5jb20wggEiMA0GCSqGSIb3DQEBAQUA | ||
| 9 | A4IBDwAwggEKAoIBAQCSxTDiQWEArAFdVLF8fYnY5jqCUiYo4CPE1GLL/vI2t/0u | ||
| 10 | 8a//yWWuZaOK0z3Mj0FRuUofXEJGGXB2fFs1qStuyYBEpwJaJm7uhm1zNLakC4I7 | ||
| 11 | V12Bs5/edw8qMQLmGu7kqQ0PiOMTuS2GS2EhPUnKIErqhiQBgv56hW4o86SGjnYb | ||
| 12 | rGSBCAys6NpaqPC8oMOXjJs5T0bbyHaT8ga2zaLlD4pBcho+2sWITWtv9eMZFuva | ||
| 13 | kE8vHNR48mbR5FuZ1CJenxU62NHZcfIaMChYN5KjGdHGqCFbPXzxehaX0Ofhghc6 | ||
| 14 | Z28KiP+AbQwaMEAqRrvU0V7GTLmE6DAWvmYJslGxAgMBAAGjggE6MIIBNjAJBgNV | ||
| 15 | HRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIGQDAzBglghkgBhvhCAQ0EJhYkT3BlblNT | ||
| 16 | TCBHZW5lcmF0ZWQgU2VydmVyIENlcnRpZmljYXRlMB0GA1UdDgQWBBScPhckKM30 | ||
| 17 | e6q7bJiXfbXIk6qhSzCBnAYDVR0jBIGUMIGRgBQSutLIyJsePNmzX9GhghKTR5XT | ||
| 18 | w6FjpGEwXzELMAkGA1UEBhMCc2cxCzAJBgNVBAgMAmhpMQswCQYDVQQKDAJoaTEh | ||
| 19 | MB8GA1UECwwYaGkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRMwEQYDVQQDDApoaSBS | ||
| 20 | b290IENBghQ3yksY6003XwZ6WpPv6BvlNMRG1zAOBgNVHQ8BAf8EBAMCBaAwEwYD | ||
| 21 | VR0lBAwwCgYIKwYBBQUHAwEwCgYIKoZIzj0EAwQDaAAwZQIwEwNmLeDtForhC2WY | ||
| 22 | JCcijzNBlKLGvKRP0KXGh3Uhfl+ZZOhmTYM5lnbZ1XDrZG2YAjEA9oU5b7AEqtIO | ||
| 23 | 5uYkFrKJ49qA8crVH84thHvfYrOMMJNO8v1fgDtiKayzHnQq+61V | ||
| 24 | -----END CERTIFICATE----- | ||
| 25 | -----BEGIN CERTIFICATE----- | ||
| 26 | MIIChjCCAgygAwIBAgIUN8pLGOtNN18GelqT7+gb5TTERtcwCgYIKoZIzj0EAwQw | ||
| 27 | XzELMAkGA1UEBhMCc2cxCzAJBgNVBAgMAmhpMQswCQYDVQQKDAJoaTEhMB8GA1UE | ||
| 28 | CwwYaGkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRMwEQYDVQQDDApoaSBSb290IENB | ||
| 29 | MB4XDTI0MTExMjE5MzYwNVoXDTI5MTExMTE5MzYwNVowgYExCzAJBgNVBAYTAlNH | ||
| 30 | MRIwEAYDVQQIDAlzaW5nYXBvcmUxFTATBgNVBAoMDGNvbXBhbnkgbmFtZTEqMCgG | ||
| 31 | A1UECwwhY29tcGFueW5hbWUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRswGQYDVQQD | ||
| 32 | DBJoaSBJbnRlcm1lZGlhdGUgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQHjbSZ | ||
| 33 | S/10AselloIpzwY56f1pntc622qiJ/lB3O9WDkSEt5UpdXumtehRVKHkTCK2U6Wc | ||
| 34 | ldyBA5aVkj4DpSFgLgfWI/+23WzI5bzYtyEW7VuwsEwWTq6y2PpWVULZzUijZjBk | ||
| 35 | MB0GA1UdDgQWBBQSutLIyJsePNmzX9GhghKTR5XTwzAfBgNVHSMEGDAWgBQ1I3hI | ||
| 36 | xxMh1tp7g4SRVmjAgyEapTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQE | ||
| 37 | AwIBhjAKBggqhkjOPQQDBANoADBlAjBpqaP5p29kRuZrdmjTJq/laWpenSZiXK4m | ||
| 38 | rJVaBV2V0ajCB4eqTnS4KJORjTfLVOMCMQCf6T3ZH5TN+f1QkHxDM9DUOkyOqOzv | ||
| 39 | FXvgRTHcWckPqceCIgO4IWFS7WxgyvEmlr4= | ||
| 40 | -----END CERTIFICATE----- | ||
| 41 | -----BEGIN CERTIFICATE----- | ||
| 42 | MIICYDCCAeagAwIBAgIUKzrohjd0kem8ZlOdZ3Z/WCacRW4wCgYIKoZIzj0EAwQw | ||
| 43 | XzELMAkGA1UEBhMCc2cxCzAJBgNVBAgMAmhpMQswCQYDVQQKDAJoaTEhMB8GA1UE | ||
| 44 | CwwYaGkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRMwEQYDVQQDDApoaSBSb290IENB | ||
| 45 | MB4XDTI0MTExMjE5Mjg1OFoXDTM0MTExMDE5Mjg1OFowXzELMAkGA1UEBhMCc2cx | ||
| 46 | CzAJBgNVBAgMAmhpMQswCQYDVQQKDAJoaTEhMB8GA1UECwwYaGkgQ2VydGlmaWNh | ||
| 47 | dGUgQXV0aG9yaXR5MRMwEQYDVQQDDApoaSBSb290IENBMHYwEAYHKoZIzj0CAQYF | ||
| 48 | K4EEACIDYgAEDu8tCkFEHPtSprQKEp+QNUxEMQHPPYAqOtLFYLQrgZV862d/tCms | ||
| 49 | 2ZN610YgJ4Q2jzPoG+OT75/cA66bqfRik0GY6Uc/YIzXVjFIdnLPv36w0gUnazdZ | ||
| 50 | 7J3U95JZ9006o2MwYTAdBgNVHQ4EFgQUNSN4SMcTIdbae4OEkVZowIMhGqUwHwYD | ||
| 51 | VR0jBBgwFoAUNSN4SMcTIdbae4OEkVZowIMhGqUwDwYDVR0TAQH/BAUwAwEB/zAO | ||
| 52 | BgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwQDaAAwZQIwDwyap3b/a6em5Q2AOCf7 | ||
| 53 | sWJfyC1WW/6UAZ3smu5LT5zd+nBeuiQ5OinIWm8xAXUDAjEAxjDUWD1avBtFV6sw | ||
| 54 | FHb91laAakaee7EgVkEng1kqEkzza9cNGghek2aIPV5nHXH+ | ||
| 55 | -----END CERTIFICATE----- | ||
diff --git a/config_files/certificate-authority/config/normalcli/client.crt b/config_files/certificate-authority/config/normalcli/client.crt new file mode 100755 index 0000000..e7bcb9a --- /dev/null +++ b/config_files/certificate-authority/config/normalcli/client.crt | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | -----BEGIN CERTIFICATE----- | ||
| 2 | MIIEBDCCA4mgAwIBAgIUdPIUkJpPJEojUqKFG8wPExCcuBAwCgYIKoZIzj0EAwQw | ||
| 3 | gYExCzAJBgNVBAYTAlNHMRIwEAYDVQQIDAlzaW5nYXBvcmUxFTATBgNVBAoMDGNv | ||
| 4 | bXBhbnkgbmFtZTEqMCgGA1UECwwhY29tcGFueW5hbWUgQ2VydGlmaWNhdGUgQXV0 | ||
| 5 | aG9yaXR5MRswGQYDVQQDDBJoaSBJbnRlcm1lZGlhdGUgQ0EwHhcNMjQxMTEyMjIw | ||
| 6 | MjQ0WhcNMjUxMTIyMjIwMjQ0WjBYMQswCQYDVQQGEwJVUzESMBAGA1UECAwJWW91 | ||
| 7 | clN0YXRlMREwDwYDVQQHDAhZb3VyQ2l0eTEQMA4GA1UECgwHWW91ck9yZzEQMA4G | ||
| 8 | A1UEAwwHY2xpZW50MjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANik | ||
| 9 | xK/PaOCf2ewyWsZ2paKGWTBmu+72qDDIIJHYAT+7vp/n7m91K0+MhzOsDwdJH/vH | ||
| 10 | oT1Wy30Q6eGRG6EgiL6oHbWWp+Rp6zDHAHXc+IYDWqs6ipUOYBbaXllHirnlkG3z | ||
| 11 | XJ11d05gxWPsXjDw96O91CKJPtSIC0kyVU4E22SM0Qcv0IaHsBG1+bYOtOT0wNE5 | ||
| 12 | v/pvNJYP7Oe4H+8s6rZZr+S5AT+JdU7B4+tyzI40M+4cjrVi987C3Y1qZ80MN4L6 | ||
| 13 | IWSjSVOwe8I1Ktj7fJ11GBGsWrxeOu4G9KtpVTyI+TNyg6UMR805J6c+BR6t7C5Z | ||
| 14 | aUdsAaqX66Nsw3pNDo8CAwEAAaOCATowggE2MAkGA1UdEwQCMAAwEQYJYIZIAYb4 | ||
| 15 | QgEBBAQDAgeAMDMGCWCGSAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBDbGll | ||
| 16 | bnQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFNh/IRK0n80go6/SriULim3nGAkKMIGc | ||
| 17 | BgNVHSMEgZQwgZGAFBK60sjImx482bNf0aGCEpNHldPDoWOkYTBfMQswCQYDVQQG | ||
| 18 | EwJzZzELMAkGA1UECAwCaGkxCzAJBgNVBAoMAmhpMSEwHwYDVQQLDBhoaSBDZXJ0 | ||
| 19 | aWZpY2F0ZSBBdXRob3JpdHkxEzARBgNVBAMMCmhpIFJvb3QgQ0GCFDfKSxjrTTdf | ||
| 20 | Bnpak+/oG+U0xEbXMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcD | ||
| 21 | AjAKBggqhkjOPQQDBANpADBmAjEA6gSZO2a0iijgvcYOm9fB8vIgwYDlrEytmIt4 | ||
| 22 | DWSRP7k9/a+CW6CfNf8IWNDmfNOmAjEAsbP8DRJ3Bb5iEwE3XAACAHANnMNWCJ05 | ||
| 23 | 1FLmX4pIQee05665Uao7HcTCPAGNJpRY | ||
| 24 | -----END CERTIFICATE----- | ||
diff --git a/config_files/certificate-authority/config/normalcli/client.csr b/config_files/certificate-authority/config/normalcli/client.csr new file mode 100755 index 0000000..356b308 --- /dev/null +++ b/config_files/certificate-authority/config/normalcli/client.csr | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | -----BEGIN CERTIFICATE REQUEST----- | ||
| 2 | MIICnTCCAYUCAQAwWDELMAkGA1UEBhMCVVMxEjAQBgNVBAgMCVlvdXJTdGF0ZTER | ||
| 3 | MA8GA1UEBwwIWW91ckNpdHkxEDAOBgNVBAoMB1lvdXJPcmcxEDAOBgNVBAMMB2Ns | ||
| 4 | aWVudDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYpMSvz2jgn9ns | ||
| 5 | MlrGdqWihlkwZrvu9qgwyCCR2AE/u76f5+5vdStPjIczrA8HSR/7x6E9Vst9EOnh | ||
| 6 | kRuhIIi+qB21lqfkaeswxwB13PiGA1qrOoqVDmAW2l5ZR4q55ZBt81yddXdOYMVj | ||
| 7 | 7F4w8PejvdQiiT7UiAtJMlVOBNtkjNEHL9CGh7ARtfm2DrTk9MDROb/6bzSWD+zn | ||
| 8 | uB/vLOq2Wa/kuQE/iXVOwePrcsyONDPuHI61YvfOwt2NamfNDDeC+iFko0lTsHvC | ||
| 9 | NSrY+3yddRgRrFq8XjruBvSraVU8iPkzcoOlDEfNOSenPgUerewuWWlHbAGql+uj | ||
| 10 | bMN6TQ6PAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEAwj/+j8IWQZ99yV/qE2us | ||
| 11 | /YK7VJWCZgRpYbmrUTOH67evwiRlPEj1reXdyTBHISJ9tnE57mcXn0nbvAWI9tpk | ||
| 12 | 4/KMJx9g1Jfuid5SgD74ShsFiHn0SP+9O9OEHTZIL5nyQIDu8L6X3KwsB6TsodbH | ||
| 13 | pYGBp/jnhz46LBynsTTDIoxa5i+M0dz43oYpLlJqXZE8Srgm/uR8ye2AS/QPvcuC | ||
| 14 | bVgw52YgAGNu3PlE3hf0ORtwWasekl6uCTRVTzIf2qptkx3AuUGgSy0biPotyHxt | ||
| 15 | rf0NGodVZyb0L4lF/t+4Wk7SyP9zuxq0sA938kLQb3Ob9hTM2i0T4msJplz5He37 | ||
| 16 | eA== | ||
| 17 | -----END CERTIFICATE REQUEST----- | ||
diff --git a/config_files/certificate-authority/config/normalcli/client.key b/config_files/certificate-authority/config/normalcli/client.key new file mode 100755 index 0000000..4dd0ac4 --- /dev/null +++ b/config_files/certificate-authority/config/normalcli/client.key | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | -----BEGIN PRIVATE KEY----- | ||
| 2 | MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDYpMSvz2jgn9ns | ||
| 3 | MlrGdqWihlkwZrvu9qgwyCCR2AE/u76f5+5vdStPjIczrA8HSR/7x6E9Vst9EOnh | ||
| 4 | kRuhIIi+qB21lqfkaeswxwB13PiGA1qrOoqVDmAW2l5ZR4q55ZBt81yddXdOYMVj | ||
| 5 | 7F4w8PejvdQiiT7UiAtJMlVOBNtkjNEHL9CGh7ARtfm2DrTk9MDROb/6bzSWD+zn | ||
| 6 | uB/vLOq2Wa/kuQE/iXVOwePrcsyONDPuHI61YvfOwt2NamfNDDeC+iFko0lTsHvC | ||
| 7 | NSrY+3yddRgRrFq8XjruBvSraVU8iPkzcoOlDEfNOSenPgUerewuWWlHbAGql+uj | ||
| 8 | bMN6TQ6PAgMBAAECggEAUkh2id3plBMypnLTpnhu3aVQX8FNVOwrImgIcsxLYSUS | ||
| 9 | OFLTbVLf0dVqjpYlmRtNgggm9hCutgBEDI/cIh0kwuFAc3VWrDsMgJi81IdKfz/r | ||
| 10 | 4ogYFZgBp/xlhFxXVNbbvd8GSKnSWBsKLbMbbVRAglj5pupgykEnpDPxUXInz+63 | ||
| 11 | Ccmwcz82mYw5oAXwGbFWF9P0wfCbBkr13uH7l4yk9jawm2DNC7IlBQ/TzFv8qI0I | ||
| 12 | kUM/JB3/LIgqAL/9tniMt5uGJd5WUTagICJCI+bCRKMJVvjq37096gjbLG2LCPn3 | ||
| 13 | iQ6/0Or202hlpIBWZBcyXW4d2/0EvI5Rz8C0aV0K+QKBgQDyB10vEFUVKqub+AVu | ||
| 14 | VEJJSscuhNH/5PpDV2uOycx9bWwIeofcUFyiDCvorJmCtlU8hvyTjdaBbWR8UhEr | ||
| 15 | qewf0ZYfO1WVUP1egz5u5Ralph1IYHUoxwStR2knp+JHtuIHuCSnal2Vu8p57uoZ | ||
| 16 | i3nNTzadof0XJq2uiSPWGAxYGQKBgQDlJkUA8eZLb4JVrTcOch3OAHlmxizPgJPJ | ||
| 17 | SxsGsaQn/636fk9GHiCtRt2oD7tgGpxzBrf6i0Bs1K0wzBbmPtb6JhE+z5nhKirk | ||
| 18 | CPXbb/6XN8svQHkIqKlHOqaSTQ96mHfEfcOurpeuYzQDt09Rppgo4eXExRXig1lI | ||
| 19 | g0KN4+gQ5wKBgERKh6SL+zXpwFpV9VJYPAvqKaGaoJaPyX3O4O59SlHp2h3aVRN5 | ||
| 20 | KWof/RO9/+K+B/b4L7SCxQ/oCf56OZYUcCfaP324hEGJhLRyW992jJlY8dJGRUio | ||
| 21 | P02VZLpnyJVrqQN8lfsXLCjfwBX/r9ZdYJTp0QNRfdRWeZNR5ua2CmWhAoGBAMRG | ||
| 22 | hl5r1K2SotnOF1WJS5wy7cmpP6Kw6GVHrquKJyiXqSbhX/eYQLcK9ztH1mBYCt+/ | ||
| 23 | xoCVHCbb+EjO12J6OttjFexuF8k0vC48upIuGKzf/mrH16QiC3TWeOzhkruYsyWb | ||
| 24 | 76vFImkd0eTI8+jlQHnsHEnx4m/1v9kLjUtKBnHLAoGAXyAN75ZRy69QOvrXpjPI | ||
| 25 | 8Rq48hwCrwwUtIMWNKZFHUA+SlT6fYACfKDwajdkNQjTqJ/KpA/oDVA7He8K2wlM | ||
| 26 | 2RnYraXx1eivGXIfQvUWcuHOq6CmcJEp+WiVUbLlyKMyPS7hB3PYuWrnYpAwaiBn | ||
| 27 | uWGX6LvdsBajP4hpEDM6o7o= | ||
| 28 | -----END PRIVATE KEY----- | ||
diff --git a/config_files/certificate-authority/config/server.crt b/config_files/certificate-authority/config/server.crt new file mode 100644 index 0000000..84447b1 --- /dev/null +++ b/config_files/certificate-authority/config/server.crt | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | -----BEGIN CERTIFICATE----- | ||
| 2 | MIIEEzCCA5mgAwIBAgIUdPIUkJpPJEojUqKFG8wPExCcuA4wCgYIKoZIzj0EAwQw | ||
| 3 | gYExCzAJBgNVBAYTAlNHMRIwEAYDVQQIDAlzaW5nYXBvcmUxFTATBgNVBAoMDGNv | ||
| 4 | bXBhbnkgbmFtZTEqMCgGA1UECwwhY29tcGFueW5hbWUgQ2VydGlmaWNhdGUgQXV0 | ||
| 5 | aG9yaXR5MRswGQYDVQQDDBJoaSBJbnRlcm1lZGlhdGUgQ0EwHhcNMjQxMTEyMTk0 | ||
| 6 | ODE3WhcNMjUxMTIyMTk0ODE3WjBoMQswCQYDVQQGEwJVUzESMBAGA1UECAwJWW91 | ||
| 7 | clN0YXRlMREwDwYDVQQHDAhZb3VyQ2l0eTEZMBcGA1UECgwQWW91ck9yZ2FuaXph | ||
| 8 | dGlvbjEXMBUGA1UEAwwOeW91cmRvbWFpbi5jb20wggEiMA0GCSqGSIb3DQEBAQUA | ||
| 9 | A4IBDwAwggEKAoIBAQCSxTDiQWEArAFdVLF8fYnY5jqCUiYo4CPE1GLL/vI2t/0u | ||
| 10 | 8a//yWWuZaOK0z3Mj0FRuUofXEJGGXB2fFs1qStuyYBEpwJaJm7uhm1zNLakC4I7 | ||
| 11 | V12Bs5/edw8qMQLmGu7kqQ0PiOMTuS2GS2EhPUnKIErqhiQBgv56hW4o86SGjnYb | ||
| 12 | rGSBCAys6NpaqPC8oMOXjJs5T0bbyHaT8ga2zaLlD4pBcho+2sWITWtv9eMZFuva | ||
| 13 | kE8vHNR48mbR5FuZ1CJenxU62NHZcfIaMChYN5KjGdHGqCFbPXzxehaX0Ofhghc6 | ||
| 14 | Z28KiP+AbQwaMEAqRrvU0V7GTLmE6DAWvmYJslGxAgMBAAGjggE6MIIBNjAJBgNV | ||
| 15 | HRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIGQDAzBglghkgBhvhCAQ0EJhYkT3BlblNT | ||
| 16 | TCBHZW5lcmF0ZWQgU2VydmVyIENlcnRpZmljYXRlMB0GA1UdDgQWBBScPhckKM30 | ||
| 17 | e6q7bJiXfbXIk6qhSzCBnAYDVR0jBIGUMIGRgBQSutLIyJsePNmzX9GhghKTR5XT | ||
| 18 | w6FjpGEwXzELMAkGA1UEBhMCc2cxCzAJBgNVBAgMAmhpMQswCQYDVQQKDAJoaTEh | ||
| 19 | MB8GA1UECwwYaGkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRMwEQYDVQQDDApoaSBS | ||
| 20 | b290IENBghQ3yksY6003XwZ6WpPv6BvlNMRG1zAOBgNVHQ8BAf8EBAMCBaAwEwYD | ||
| 21 | VR0lBAwwCgYIKwYBBQUHAwEwCgYIKoZIzj0EAwQDaAAwZQIwEwNmLeDtForhC2WY | ||
| 22 | JCcijzNBlKLGvKRP0KXGh3Uhfl+ZZOhmTYM5lnbZ1XDrZG2YAjEA9oU5b7AEqtIO | ||
| 23 | 5uYkFrKJ49qA8crVH84thHvfYrOMMJNO8v1fgDtiKayzHnQq+61V | ||
| 24 | -----END CERTIFICATE----- | ||
diff --git a/config_files/certificate-authority/config/server.csr b/config_files/certificate-authority/config/server.csr new file mode 100644 index 0000000..9e5e167 --- /dev/null +++ b/config_files/certificate-authority/config/server.csr | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | -----BEGIN CERTIFICATE REQUEST----- | ||
| 2 | MIICrTCCAZUCAQAwaDELMAkGA1UEBhMCVVMxEjAQBgNVBAgMCVlvdXJTdGF0ZTER | ||
| 3 | MA8GA1UEBwwIWW91ckNpdHkxGTAXBgNVBAoMEFlvdXJPcmdhbml6YXRpb24xFzAV | ||
| 4 | BgNVBAMMDnlvdXJkb21haW4uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB | ||
| 5 | CgKCAQEAksUw4kFhAKwBXVSxfH2J2OY6glImKOAjxNRiy/7yNrf9LvGv/8llrmWj | ||
| 6 | itM9zI9BUblKH1xCRhlwdnxbNakrbsmARKcCWiZu7oZtczS2pAuCO1ddgbOf3ncP | ||
| 7 | KjEC5hru5KkND4jjE7kthkthIT1JyiBK6oYkAYL+eoVuKPOkho52G6xkgQgMrOja | ||
| 8 | WqjwvKDDl4ybOU9G28h2k/IGts2i5Q+KQXIaPtrFiE1rb/XjGRbr2pBPLxzUePJm | ||
| 9 | 0eRbmdQiXp8VOtjR2XHyGjAoWDeSoxnRxqghWz188XoWl9Dn4YIXOmdvCoj/gG0M | ||
| 10 | GjBAKka71NFexky5hOgwFr5mCbJRsQIDAQABoAAwDQYJKoZIhvcNAQELBQADggEB | ||
| 11 | ABrlYpipRamlAk0zMYb2J/Yk/sw6T41OzWhG4Z6n6V5KSmCbTO/KgUIjeRMmIilE | ||
| 12 | yE2LTJL1aUFDkAib7SJu02U4iZquRDsGSzQbT4xnhzTz4esOowkXEZGFdCV/qhDK | ||
| 13 | lN34yFV+oNGT9nO3TjKE2SJPiDlfgMdRikoYPNWo6yv+0l3a4jWiTqq7Xn0derEu | ||
| 14 | ZHPBhAuJvWzrD3ixap4BOlSKNp9C0dFuLhbnu9SAuy4uL/rjWsOH+KZVW388MlzA | ||
| 15 | CibAN3GHmm7xzNUTrXrX3w5w3mU1O3IKKWu1u/EQTPq8/WfmRcvOg+xhqlOEvCGx | ||
| 16 | YrwlWlETn28qAuq0WTa3+Gg= | ||
| 17 | -----END CERTIFICATE REQUEST----- | ||
diff --git a/config_files/certificate-authority/config/sign_intermediate_csr.ini b/config_files/certificate-authority/config/sign_intermediate_csr.ini new file mode 100644 index 0000000..09a20f7 --- /dev/null +++ b/config_files/certificate-authority/config/sign_intermediate_csr.ini | |||
| @@ -0,0 +1,43 @@ | |||
| 1 | [ ca ] | ||
| 2 | # `man ca` | ||
| 3 | default_ca = CA_default | ||
| 4 | |||
| 5 | [ CA_default ] | ||
| 6 | # Directory and file locations. | ||
| 7 | dir = /opt/certificate-authority | ||
| 8 | certs = $dir/certs | ||
| 9 | crl_dir = $dir/crl | ||
| 10 | new_certs_dir = $dir/newcerts | ||
| 11 | database = $dir/index.txt | ||
| 12 | serial = $dir/serial | ||
| 13 | |||
| 14 | # The root key and root certificate. | ||
| 15 | private_key = pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0104964;token=SmartCard-HSM%20%28UserPIN%29;id=%BA%6C%1F%2B%2B%16%E9%7B%4F%31%B0%91%19%73%2F%C8%DF%78%3A%FD;object=root;type=private | ||
| 16 | certificate = ../certs/root.crt | ||
| 17 | |||
| 18 | # SHA-1 is deprecated, so use SHA-2 instead. | ||
| 19 | default_md = sha512 | ||
| 20 | |||
| 21 | name_opt = ca_default | ||
| 22 | cert_opt = ca_default | ||
| 23 | default_days = 375 | ||
| 24 | preserve = no | ||
| 25 | policy = policy_loose | ||
| 26 | |||
| 27 | [ policy_loose ] | ||
| 28 | # Allow the intermediate CA to sign a more diverse range of certificates. | ||
| 29 | # See the POLICY FORMAT section of the `ca` man page. | ||
| 30 | countryName = optional | ||
| 31 | stateOrProvinceName = optional | ||
| 32 | localityName = optional | ||
| 33 | organizationName = optional | ||
| 34 | organizationalUnitName = optional | ||
| 35 | commonName = supplied | ||
| 36 | emailAddress = optional | ||
| 37 | |||
| 38 | [ v3_intermediate_ca ] | ||
| 39 | # Extensions for a typical intermediate CA (`man x509v3_config`). | ||
| 40 | subjectKeyIdentifier = hash | ||
| 41 | authorityKeyIdentifier = keyid:always,issuer | ||
| 42 | basicConstraints = critical, CA:true, pathlen:0 | ||
| 43 | keyUsage = critical, digitalSignature, cRLSign, keyCertSign | ||
diff --git a/config_files/certificate-authority/config/sign_server_and_client_csrs.ini b/config_files/certificate-authority/config/sign_server_and_client_csrs.ini new file mode 100644 index 0000000..0cffc13 --- /dev/null +++ b/config_files/certificate-authority/config/sign_server_and_client_csrs.ini | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | [ ca ] | ||
| 2 | default_ca = CA_default | ||
| 3 | |||
| 4 | [ CA_default ] | ||
| 5 | dir = /opt/certificate-authority/intermediate | ||
| 6 | certs = $dir/certs | ||
| 7 | crl_dir = $dir/crl | ||
| 8 | new_certs_dir = $dir/newcerts | ||
| 9 | database = $dir/index.txt | ||
| 10 | serial = $dir/serial | ||
| 11 | private_key = pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0104964;token=SmartCard-HSM%20%28UserPIN%29;id=%D6%0E%28%C8%ED%2B%D5%FF%87%6B%88%06%4F%5B%70%1A%E5%F7%B4%99;object=intermediate;type=private | ||
| 12 | certificate = $dir/certs/intermediate.crt | ||
| 13 | default_md = sha512 | ||
| 14 | name_opt = ca_default | ||
| 15 | cert_opt = ca_default | ||
| 16 | default_days = 375 | ||
| 17 | preserve = no | ||
| 18 | policy = policy_loose | ||
| 19 | |||
| 20 | [ policy_loose ] | ||
| 21 | countryName = optional | ||
| 22 | stateOrProvinceName = optional | ||
| 23 | localityName = optional | ||
| 24 | organizationName = optional | ||
| 25 | organizationalUnitName = optional | ||
| 26 | commonName = supplied | ||
| 27 | emailAddress = optional | ||
| 28 | |||
| 29 | [ server_cert ] | ||
| 30 | basicConstraints = CA:FALSE | ||
| 31 | nsCertType = server | ||
| 32 | nsComment = "OpenSSL Generated Server Certificate" | ||
| 33 | subjectKeyIdentifier = hash | ||
| 34 | authorityKeyIdentifier = keyid,issuer:always | ||
| 35 | keyUsage = critical, digitalSignature, keyEncipherment | ||
| 36 | extendedKeyUsage = serverAuth | ||
| 37 | |||
| 38 | [ client_cert ] | ||
| 39 | basicConstraints = CA:FALSE | ||
| 40 | nsCertType = client | ||
| 41 | nsComment = "OpenSSL Generated Client Certificate" | ||
| 42 | subjectKeyIdentifier = hash | ||
| 43 | authorityKeyIdentifier = keyid,issuer:always | ||
| 44 | keyUsage = critical, digitalSignature | ||
| 45 | extendedKeyUsage = clientAuth | ||
diff --git a/config_files/certificate-authority/config/yubikey/yubi.crt b/config_files/certificate-authority/config/yubikey/yubi.crt new file mode 100644 index 0000000..7cd308b --- /dev/null +++ b/config_files/certificate-authority/config/yubikey/yubi.crt | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | -----BEGIN CERTIFICATE----- | ||
| 2 | MIID5zCCA2ygAwIBAgIUdPIUkJpPJEojUqKFG8wPExCcuA8wCgYIKoZIzj0EAwQw | ||
| 3 | gYExCzAJBgNVBAYTAlNHMRIwEAYDVQQIDAlzaW5nYXBvcmUxFTATBgNVBAoMDGNv | ||
| 4 | bXBhbnkgbmFtZTEqMCgGA1UECwwhY29tcGFueW5hbWUgQ2VydGlmaWNhdGUgQXV0 | ||
| 5 | aG9yaXR5MRswGQYDVQQDDBJoaSBJbnRlcm1lZGlhdGUgQ0EwHhcNMjQxMTEyMjAw | ||
| 6 | NDQ4WhcNMjUxMTIyMjAwNDQ4WjA7MQswCQYDVQQGEwJVUzEVMBMGA1UECgwMRXhh | ||
| 7 | bXBsZSBDb3JwMRUwEwYDVQQDDAxoaWkgVXNlbmFtZXIwggEiMA0GCSqGSIb3DQEB | ||
| 8 | AQUAA4IBDwAwggEKAoIBAQDJUjjRY+PpNWuR7Zt81ZLtAzTLSP0BwRhOtUB0JM2Y | ||
| 9 | sYm/xaxHDvVORIrn58y7SLEo+k2mWdC5CfyelN7hQEw8BakW2n4ka3BMef7Cd+Hp | ||
| 10 | ICTIBvRdecYd5Swl3BB22Pus+WuuY9AP1c1+sMUJ5fRp9TG6MdmyYXDbmNmIUvbU | ||
| 11 | 1NYhaUS9BmE8+Tgcg5BQvvArofk9sR8GVmrfeWRdCIh+Ma+X08UoZLGtkJG3Z51c | ||
| 12 | qTUoNBgU61CiRqAEH4PZ5V7zaXgYOpUrr8/ql2e7/WCpn4qmjWDd7DnUCC1VR58z | ||
| 13 | lUjFYw9OPPmPZ30IB8fp48Z3tgwynLVX0/iw2o7nPRQtAgMBAAGjggE6MIIBNjAJ | ||
| 14 | BgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIHgDAzBglghkgBhvhCAQ0EJhYkT3Bl | ||
| 15 | blNTTCBHZW5lcmF0ZWQgQ2xpZW50IENlcnRpZmljYXRlMB0GA1UdDgQWBBQiJrOh | ||
| 16 | Pna4bxHGNpRqmaV/IC/jxzCBnAYDVR0jBIGUMIGRgBQSutLIyJsePNmzX9GhghKT | ||
| 17 | R5XTw6FjpGEwXzELMAkGA1UEBhMCc2cxCzAJBgNVBAgMAmhpMQswCQYDVQQKDAJo | ||
| 18 | aTEhMB8GA1UECwwYaGkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRMwEQYDVQQDDApo | ||
| 19 | aSBSb290IENBghQ3yksY6003XwZ6WpPv6BvlNMRG1zAOBgNVHQ8BAf8EBAMCB4Aw | ||
| 20 | EwYDVR0lBAwwCgYIKwYBBQUHAwIwCgYIKoZIzj0EAwQDaQAwZgIxAI0V54UBZJqA | ||
| 21 | SWYihKikCdS6S6PB9F0OgibPPgWWSVztbImzZsFGAdVpwS8SDp8JMQIxAMVFxqBk | ||
| 22 | 29UXxX1SvENRXPKZO6a7iMh6E8VmOd/ZXDVkstuL6sUWTRVuiv3YoBPK3A== | ||
| 23 | -----END CERTIFICATE----- | ||
diff --git a/config_files/certificate-authority/config/yubikey/yubi.crt.pem b/config_files/certificate-authority/config/yubikey/yubi.crt.pem new file mode 100644 index 0000000..7cd308b --- /dev/null +++ b/config_files/certificate-authority/config/yubikey/yubi.crt.pem | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | -----BEGIN CERTIFICATE----- | ||
| 2 | MIID5zCCA2ygAwIBAgIUdPIUkJpPJEojUqKFG8wPExCcuA8wCgYIKoZIzj0EAwQw | ||
| 3 | gYExCzAJBgNVBAYTAlNHMRIwEAYDVQQIDAlzaW5nYXBvcmUxFTATBgNVBAoMDGNv | ||
| 4 | bXBhbnkgbmFtZTEqMCgGA1UECwwhY29tcGFueW5hbWUgQ2VydGlmaWNhdGUgQXV0 | ||
| 5 | aG9yaXR5MRswGQYDVQQDDBJoaSBJbnRlcm1lZGlhdGUgQ0EwHhcNMjQxMTEyMjAw | ||
| 6 | NDQ4WhcNMjUxMTIyMjAwNDQ4WjA7MQswCQYDVQQGEwJVUzEVMBMGA1UECgwMRXhh | ||
| 7 | bXBsZSBDb3JwMRUwEwYDVQQDDAxoaWkgVXNlbmFtZXIwggEiMA0GCSqGSIb3DQEB | ||
| 8 | AQUAA4IBDwAwggEKAoIBAQDJUjjRY+PpNWuR7Zt81ZLtAzTLSP0BwRhOtUB0JM2Y | ||
| 9 | sYm/xaxHDvVORIrn58y7SLEo+k2mWdC5CfyelN7hQEw8BakW2n4ka3BMef7Cd+Hp | ||
| 10 | ICTIBvRdecYd5Swl3BB22Pus+WuuY9AP1c1+sMUJ5fRp9TG6MdmyYXDbmNmIUvbU | ||
| 11 | 1NYhaUS9BmE8+Tgcg5BQvvArofk9sR8GVmrfeWRdCIh+Ma+X08UoZLGtkJG3Z51c | ||
| 12 | qTUoNBgU61CiRqAEH4PZ5V7zaXgYOpUrr8/ql2e7/WCpn4qmjWDd7DnUCC1VR58z | ||
| 13 | lUjFYw9OPPmPZ30IB8fp48Z3tgwynLVX0/iw2o7nPRQtAgMBAAGjggE6MIIBNjAJ | ||
| 14 | BgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIHgDAzBglghkgBhvhCAQ0EJhYkT3Bl | ||
| 15 | blNTTCBHZW5lcmF0ZWQgQ2xpZW50IENlcnRpZmljYXRlMB0GA1UdDgQWBBQiJrOh | ||
| 16 | Pna4bxHGNpRqmaV/IC/jxzCBnAYDVR0jBIGUMIGRgBQSutLIyJsePNmzX9GhghKT | ||
| 17 | R5XTw6FjpGEwXzELMAkGA1UEBhMCc2cxCzAJBgNVBAgMAmhpMQswCQYDVQQKDAJo | ||
| 18 | aTEhMB8GA1UECwwYaGkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRMwEQYDVQQDDApo | ||
| 19 | aSBSb290IENBghQ3yksY6003XwZ6WpPv6BvlNMRG1zAOBgNVHQ8BAf8EBAMCB4Aw | ||
| 20 | EwYDVR0lBAwwCgYIKwYBBQUHAwIwCgYIKoZIzj0EAwQDaQAwZgIxAI0V54UBZJqA | ||
| 21 | SWYihKikCdS6S6PB9F0OgibPPgWWSVztbImzZsFGAdVpwS8SDp8JMQIxAMVFxqBk | ||
| 22 | 29UXxX1SvENRXPKZO6a7iMh6E8VmOd/ZXDVkstuL6sUWTRVuiv3YoBPK3A== | ||
| 23 | -----END CERTIFICATE----- | ||
diff --git a/config_files/certificate-authority/config/yubikey/yubi.csr b/config_files/certificate-authority/config/yubikey/yubi.csr new file mode 100644 index 0000000..f001530 --- /dev/null +++ b/config_files/certificate-authority/config/yubikey/yubi.csr | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | -----BEGIN CERTIFICATE REQUEST----- | ||
| 2 | MIICgDCCAWgCAQAwOzEVMBMGA1UEAwwMaGlpIFVzZW5hbWVyMRUwEwYDVQQKDAxF | ||
| 3 | eGFtcGxlIENvcnAxCzAJBgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A | ||
| 4 | MIIBCgKCAQEAyVI40WPj6TVrke2bfNWS7QM0y0j9AcEYTrVAdCTNmLGJv8WsRw71 | ||
| 5 | TkSK5+fMu0ixKPpNplnQuQn8npTe4UBMPAWpFtp+JGtwTHn+wnfh6SAkyAb0XXnG | ||
| 6 | HeUsJdwQdtj7rPlrrmPQD9XNfrDFCeX0afUxujHZsmFw25jZiFL21NTWIWlEvQZh | ||
| 7 | PPk4HIOQUL7wK6H5PbEfBlZq33lkXQiIfjGvl9PFKGSxrZCRt2edXKk1KDQYFOtQ | ||
| 8 | okagBB+D2eVe82l4GDqVK6/P6pdnu/1gqZ+Kpo1g3ew51AgtVUefM5VIxWMPTjz5 | ||
| 9 | j2d9CAfH6ePGd7YMMpy1V9P4sNqO5z0ULQIDAQABoAAwDQYJKoZIhvcNAQELBQAD | ||
| 10 | ggEBADcx0k7zRU4d9F8yQ7aBLhraIDJ9ZURvEptoUTuzFUu95ACZWOoiATSeLoiJ | ||
| 11 | 6nnHGksOQjYWCRUNu7lYuyE0SfxeFGCKEH8J2jkX8Z5JhKyc+VZeuaD+pu8gH3gz | ||
| 12 | RIl2Dz8L9npMQGSQrdAwJyyohHERYNSrW0OWwHP38yqqpA4rRUGHDmZtPRUjirnq | ||
| 13 | zABvt5rJAM7nx1Q+OGYupdzrg5fFtlN3JNWl2EZpe2e65A13k+nBNSSBt2aLyfVV | ||
| 14 | 9GXblWRhei/OAIJTThXW+dex5aU8ujDgeGnHrtR5r7OqkL72+4TI3UZie+k2NOBZ | ||
| 15 | zD2XpFWYvUMcvi1oLaTyQ4fulLE= | ||
| 16 | -----END CERTIFICATE REQUEST----- | ||
diff --git a/config_files/certificate-authority/config/yubikey/yubi_pubkey.pem b/config_files/certificate-authority/config/yubikey/yubi_pubkey.pem new file mode 100644 index 0000000..4979331 --- /dev/null +++ b/config_files/certificate-authority/config/yubikey/yubi_pubkey.pem | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | -----BEGIN PUBLIC KEY----- | ||
| 2 | MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyVI40WPj6TVrke2bfNWS | ||
| 3 | 7QM0y0j9AcEYTrVAdCTNmLGJv8WsRw71TkSK5+fMu0ixKPpNplnQuQn8npTe4UBM | ||
| 4 | PAWpFtp+JGtwTHn+wnfh6SAkyAb0XXnGHeUsJdwQdtj7rPlrrmPQD9XNfrDFCeX0 | ||
| 5 | afUxujHZsmFw25jZiFL21NTWIWlEvQZhPPk4HIOQUL7wK6H5PbEfBlZq33lkXQiI | ||
| 6 | fjGvl9PFKGSxrZCRt2edXKk1KDQYFOtQokagBB+D2eVe82l4GDqVK6/P6pdnu/1g | ||
| 7 | qZ+Kpo1g3ew51AgtVUefM5VIxWMPTjz5j2d9CAfH6ePGd7YMMpy1V9P4sNqO5z0U | ||
| 8 | LQIDAQAB | ||
| 9 | -----END PUBLIC KEY----- | ||
diff --git a/config_files/certificate-authority/index.txt b/config_files/certificate-authority/index.txt new file mode 100644 index 0000000..f389103 --- /dev/null +++ b/config_files/certificate-authority/index.txt | |||
| @@ -0,0 +1 @@ | |||
| V 291111193605Z 37CA4B18EB4D375F067A5A93EFE81BE534C446D7 unknown /C=SG/ST=singapore/O=company name/OU=companyname Certificate Authority/CN=hi Intermediate CA | |||
diff --git a/config_files/certificate-authority/index.txt.attr b/config_files/certificate-authority/index.txt.attr new file mode 100644 index 0000000..8f7e63a --- /dev/null +++ b/config_files/certificate-authority/index.txt.attr | |||
| @@ -0,0 +1 @@ | |||
| unique_subject = yes | |||
diff --git a/config_files/certificate-authority/index.txt.old b/config_files/certificate-authority/index.txt.old new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/config_files/certificate-authority/index.txt.old | |||
diff --git a/config_files/certificate-authority/intermediate/certs/intermediate.crt b/config_files/certificate-authority/intermediate/certs/intermediate.crt new file mode 100644 index 0000000..544c552 --- /dev/null +++ b/config_files/certificate-authority/intermediate/certs/intermediate.crt | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | -----BEGIN CERTIFICATE----- | ||
| 2 | MIIChjCCAgygAwIBAgIUN8pLGOtNN18GelqT7+gb5TTERtcwCgYIKoZIzj0EAwQw | ||
| 3 | XzELMAkGA1UEBhMCc2cxCzAJBgNVBAgMAmhpMQswCQYDVQQKDAJoaTEhMB8GA1UE | ||
| 4 | CwwYaGkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRMwEQYDVQQDDApoaSBSb290IENB | ||
| 5 | MB4XDTI0MTExMjE5MzYwNVoXDTI5MTExMTE5MzYwNVowgYExCzAJBgNVBAYTAlNH | ||
| 6 | MRIwEAYDVQQIDAlzaW5nYXBvcmUxFTATBgNVBAoMDGNvbXBhbnkgbmFtZTEqMCgG | ||
| 7 | A1UECwwhY29tcGFueW5hbWUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRswGQYDVQQD | ||
| 8 | DBJoaSBJbnRlcm1lZGlhdGUgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQHjbSZ | ||
| 9 | S/10AselloIpzwY56f1pntc622qiJ/lB3O9WDkSEt5UpdXumtehRVKHkTCK2U6Wc | ||
| 10 | ldyBA5aVkj4DpSFgLgfWI/+23WzI5bzYtyEW7VuwsEwWTq6y2PpWVULZzUijZjBk | ||
| 11 | MB0GA1UdDgQWBBQSutLIyJsePNmzX9GhghKTR5XTwzAfBgNVHSMEGDAWgBQ1I3hI | ||
| 12 | xxMh1tp7g4SRVmjAgyEapTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQE | ||
| 13 | AwIBhjAKBggqhkjOPQQDBANoADBlAjBpqaP5p29kRuZrdmjTJq/laWpenSZiXK4m | ||
| 14 | rJVaBV2V0ajCB4eqTnS4KJORjTfLVOMCMQCf6T3ZH5TN+f1QkHxDM9DUOkyOqOzv | ||
| 15 | FXvgRTHcWckPqceCIgO4IWFS7WxgyvEmlr4= | ||
| 16 | -----END CERTIFICATE----- | ||
diff --git a/config_files/certificate-authority/intermediate/csr/intermediate.csr b/config_files/certificate-authority/intermediate/csr/intermediate.csr new file mode 100644 index 0000000..b9d5e3f --- /dev/null +++ b/config_files/certificate-authority/intermediate/csr/intermediate.csr | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | -----BEGIN CERTIFICATE REQUEST----- | ||
| 2 | MIIBezCCAQECAQAwgYExCzAJBgNVBAYTAlNHMRIwEAYDVQQIDAlzaW5nYXBvcmUx | ||
| 3 | FTATBgNVBAoMDGNvbXBhbnkgbmFtZTEqMCgGA1UECwwhY29tcGFueW5hbWUgQ2Vy | ||
| 4 | dGlmaWNhdGUgQXV0aG9yaXR5MRswGQYDVQQDDBJoaSBJbnRlcm1lZGlhdGUgQ0Ew | ||
| 5 | djAQBgcqhkjOPQIBBgUrgQQAIgNiAAQHjbSZS/10AselloIpzwY56f1pntc622qi | ||
| 6 | J/lB3O9WDkSEt5UpdXumtehRVKHkTCK2U6WcldyBA5aVkj4DpSFgLgfWI/+23WzI | ||
| 7 | 5bzYtyEW7VuwsEwWTq6y2PpWVULZzUigADAKBggqhkjOPQQDBANoADBlAjAwViQS | ||
| 8 | f1Bk2z0kdYI5RVorbdJ0nDgxIJ61NmqO0zAB6Rozpgpz13V4G0ozK9D3J68CMQDl | ||
| 9 | KAr4P5yRuN8yzKUb+kl4WwnAu5NRtly7xc/uzlqhNOyUcHPRnr8YygbqhjKujBg= | ||
| 10 | -----END CERTIFICATE REQUEST----- | ||
diff --git a/config_files/certificate-authority/intermediate/index.txt b/config_files/certificate-authority/intermediate/index.txt new file mode 100644 index 0000000..248f6f5 --- /dev/null +++ b/config_files/certificate-authority/intermediate/index.txt | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | V 251122194817Z 74F214909A4F244A2352A2851BCC0F13109CB80E unknown /C=US/ST=YourState/L=YourCity/O=YourOrganization/CN=yourdomain.com | ||
| 2 | V 251122200448Z 74F214909A4F244A2352A2851BCC0F13109CB80F unknown /C=US/O=Example Corp/CN=hii Usenamer | ||
| 3 | V 251122220244Z 74F214909A4F244A2352A2851BCC0F13109CB810 unknown /C=US/ST=YourState/L=YourCity/O=YourOrg/CN=client2 | ||
diff --git a/config_files/certificate-authority/intermediate/index.txt.attr b/config_files/certificate-authority/intermediate/index.txt.attr new file mode 100644 index 0000000..8f7e63a --- /dev/null +++ b/config_files/certificate-authority/intermediate/index.txt.attr | |||
| @@ -0,0 +1 @@ | |||
| unique_subject = yes | |||
diff --git a/config_files/certificate-authority/intermediate/index.txt.attr.old b/config_files/certificate-authority/intermediate/index.txt.attr.old new file mode 100644 index 0000000..8f7e63a --- /dev/null +++ b/config_files/certificate-authority/intermediate/index.txt.attr.old | |||
| @@ -0,0 +1 @@ | |||
| unique_subject = yes | |||
diff --git a/config_files/certificate-authority/intermediate/index.txt.old b/config_files/certificate-authority/intermediate/index.txt.old new file mode 100644 index 0000000..a701b7b --- /dev/null +++ b/config_files/certificate-authority/intermediate/index.txt.old | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | V 251122194817Z 74F214909A4F244A2352A2851BCC0F13109CB80E unknown /C=US/ST=YourState/L=YourCity/O=YourOrganization/CN=yourdomain.com | ||
| 2 | V 251122200448Z 74F214909A4F244A2352A2851BCC0F13109CB80F unknown /C=US/O=Example Corp/CN=hii Usenamer | ||
diff --git a/config_files/certificate-authority/intermediate/newcerts/74F214909A4F244A2352A2851BCC0F13109CB80E.pem b/config_files/certificate-authority/intermediate/newcerts/74F214909A4F244A2352A2851BCC0F13109CB80E.pem new file mode 100644 index 0000000..84447b1 --- /dev/null +++ b/config_files/certificate-authority/intermediate/newcerts/74F214909A4F244A2352A2851BCC0F13109CB80E.pem | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | -----BEGIN CERTIFICATE----- | ||
| 2 | MIIEEzCCA5mgAwIBAgIUdPIUkJpPJEojUqKFG8wPExCcuA4wCgYIKoZIzj0EAwQw | ||
| 3 | gYExCzAJBgNVBAYTAlNHMRIwEAYDVQQIDAlzaW5nYXBvcmUxFTATBgNVBAoMDGNv | ||
| 4 | bXBhbnkgbmFtZTEqMCgGA1UECwwhY29tcGFueW5hbWUgQ2VydGlmaWNhdGUgQXV0 | ||
| 5 | aG9yaXR5MRswGQYDVQQDDBJoaSBJbnRlcm1lZGlhdGUgQ0EwHhcNMjQxMTEyMTk0 | ||
| 6 | ODE3WhcNMjUxMTIyMTk0ODE3WjBoMQswCQYDVQQGEwJVUzESMBAGA1UECAwJWW91 | ||
| 7 | clN0YXRlMREwDwYDVQQHDAhZb3VyQ2l0eTEZMBcGA1UECgwQWW91ck9yZ2FuaXph | ||
| 8 | dGlvbjEXMBUGA1UEAwwOeW91cmRvbWFpbi5jb20wggEiMA0GCSqGSIb3DQEBAQUA | ||
| 9 | A4IBDwAwggEKAoIBAQCSxTDiQWEArAFdVLF8fYnY5jqCUiYo4CPE1GLL/vI2t/0u | ||
| 10 | 8a//yWWuZaOK0z3Mj0FRuUofXEJGGXB2fFs1qStuyYBEpwJaJm7uhm1zNLakC4I7 | ||
| 11 | V12Bs5/edw8qMQLmGu7kqQ0PiOMTuS2GS2EhPUnKIErqhiQBgv56hW4o86SGjnYb | ||
| 12 | rGSBCAys6NpaqPC8oMOXjJs5T0bbyHaT8ga2zaLlD4pBcho+2sWITWtv9eMZFuva | ||
| 13 | kE8vHNR48mbR5FuZ1CJenxU62NHZcfIaMChYN5KjGdHGqCFbPXzxehaX0Ofhghc6 | ||
| 14 | Z28KiP+AbQwaMEAqRrvU0V7GTLmE6DAWvmYJslGxAgMBAAGjggE6MIIBNjAJBgNV | ||
| 15 | HRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIGQDAzBglghkgBhvhCAQ0EJhYkT3BlblNT | ||
| 16 | TCBHZW5lcmF0ZWQgU2VydmVyIENlcnRpZmljYXRlMB0GA1UdDgQWBBScPhckKM30 | ||
| 17 | e6q7bJiXfbXIk6qhSzCBnAYDVR0jBIGUMIGRgBQSutLIyJsePNmzX9GhghKTR5XT | ||
| 18 | w6FjpGEwXzELMAkGA1UEBhMCc2cxCzAJBgNVBAgMAmhpMQswCQYDVQQKDAJoaTEh | ||
| 19 | MB8GA1UECwwYaGkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRMwEQYDVQQDDApoaSBS | ||
| 20 | b290IENBghQ3yksY6003XwZ6WpPv6BvlNMRG1zAOBgNVHQ8BAf8EBAMCBaAwEwYD | ||
| 21 | VR0lBAwwCgYIKwYBBQUHAwEwCgYIKoZIzj0EAwQDaAAwZQIwEwNmLeDtForhC2WY | ||
| 22 | JCcijzNBlKLGvKRP0KXGh3Uhfl+ZZOhmTYM5lnbZ1XDrZG2YAjEA9oU5b7AEqtIO | ||
| 23 | 5uYkFrKJ49qA8crVH84thHvfYrOMMJNO8v1fgDtiKayzHnQq+61V | ||
| 24 | -----END CERTIFICATE----- | ||
diff --git a/config_files/certificate-authority/intermediate/newcerts/74F214909A4F244A2352A2851BCC0F13109CB80F.pem b/config_files/certificate-authority/intermediate/newcerts/74F214909A4F244A2352A2851BCC0F13109CB80F.pem new file mode 100644 index 0000000..7cd308b --- /dev/null +++ b/config_files/certificate-authority/intermediate/newcerts/74F214909A4F244A2352A2851BCC0F13109CB80F.pem | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | -----BEGIN CERTIFICATE----- | ||
| 2 | MIID5zCCA2ygAwIBAgIUdPIUkJpPJEojUqKFG8wPExCcuA8wCgYIKoZIzj0EAwQw | ||
| 3 | gYExCzAJBgNVBAYTAlNHMRIwEAYDVQQIDAlzaW5nYXBvcmUxFTATBgNVBAoMDGNv | ||
| 4 | bXBhbnkgbmFtZTEqMCgGA1UECwwhY29tcGFueW5hbWUgQ2VydGlmaWNhdGUgQXV0 | ||
| 5 | aG9yaXR5MRswGQYDVQQDDBJoaSBJbnRlcm1lZGlhdGUgQ0EwHhcNMjQxMTEyMjAw | ||
| 6 | NDQ4WhcNMjUxMTIyMjAwNDQ4WjA7MQswCQYDVQQGEwJVUzEVMBMGA1UECgwMRXhh | ||
| 7 | bXBsZSBDb3JwMRUwEwYDVQQDDAxoaWkgVXNlbmFtZXIwggEiMA0GCSqGSIb3DQEB | ||
| 8 | AQUAA4IBDwAwggEKAoIBAQDJUjjRY+PpNWuR7Zt81ZLtAzTLSP0BwRhOtUB0JM2Y | ||
| 9 | sYm/xaxHDvVORIrn58y7SLEo+k2mWdC5CfyelN7hQEw8BakW2n4ka3BMef7Cd+Hp | ||
| 10 | ICTIBvRdecYd5Swl3BB22Pus+WuuY9AP1c1+sMUJ5fRp9TG6MdmyYXDbmNmIUvbU | ||
| 11 | 1NYhaUS9BmE8+Tgcg5BQvvArofk9sR8GVmrfeWRdCIh+Ma+X08UoZLGtkJG3Z51c | ||
| 12 | qTUoNBgU61CiRqAEH4PZ5V7zaXgYOpUrr8/ql2e7/WCpn4qmjWDd7DnUCC1VR58z | ||
| 13 | lUjFYw9OPPmPZ30IB8fp48Z3tgwynLVX0/iw2o7nPRQtAgMBAAGjggE6MIIBNjAJ | ||
| 14 | BgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIHgDAzBglghkgBhvhCAQ0EJhYkT3Bl | ||
| 15 | blNTTCBHZW5lcmF0ZWQgQ2xpZW50IENlcnRpZmljYXRlMB0GA1UdDgQWBBQiJrOh | ||
| 16 | Pna4bxHGNpRqmaV/IC/jxzCBnAYDVR0jBIGUMIGRgBQSutLIyJsePNmzX9GhghKT | ||
| 17 | R5XTw6FjpGEwXzELMAkGA1UEBhMCc2cxCzAJBgNVBAgMAmhpMQswCQYDVQQKDAJo | ||
| 18 | aTEhMB8GA1UECwwYaGkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRMwEQYDVQQDDApo | ||
| 19 | aSBSb290IENBghQ3yksY6003XwZ6WpPv6BvlNMRG1zAOBgNVHQ8BAf8EBAMCB4Aw | ||
| 20 | EwYDVR0lBAwwCgYIKwYBBQUHAwIwCgYIKoZIzj0EAwQDaQAwZgIxAI0V54UBZJqA | ||
| 21 | SWYihKikCdS6S6PB9F0OgibPPgWWSVztbImzZsFGAdVpwS8SDp8JMQIxAMVFxqBk | ||
| 22 | 29UXxX1SvENRXPKZO6a7iMh6E8VmOd/ZXDVkstuL6sUWTRVuiv3YoBPK3A== | ||
| 23 | -----END CERTIFICATE----- | ||
diff --git a/config_files/certificate-authority/intermediate/newcerts/74F214909A4F244A2352A2851BCC0F13109CB810.pem b/config_files/certificate-authority/intermediate/newcerts/74F214909A4F244A2352A2851BCC0F13109CB810.pem new file mode 100644 index 0000000..e7bcb9a --- /dev/null +++ b/config_files/certificate-authority/intermediate/newcerts/74F214909A4F244A2352A2851BCC0F13109CB810.pem | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | -----BEGIN CERTIFICATE----- | ||
| 2 | MIIEBDCCA4mgAwIBAgIUdPIUkJpPJEojUqKFG8wPExCcuBAwCgYIKoZIzj0EAwQw | ||
| 3 | gYExCzAJBgNVBAYTAlNHMRIwEAYDVQQIDAlzaW5nYXBvcmUxFTATBgNVBAoMDGNv | ||
| 4 | bXBhbnkgbmFtZTEqMCgGA1UECwwhY29tcGFueW5hbWUgQ2VydGlmaWNhdGUgQXV0 | ||
| 5 | aG9yaXR5MRswGQYDVQQDDBJoaSBJbnRlcm1lZGlhdGUgQ0EwHhcNMjQxMTEyMjIw | ||
| 6 | MjQ0WhcNMjUxMTIyMjIwMjQ0WjBYMQswCQYDVQQGEwJVUzESMBAGA1UECAwJWW91 | ||
| 7 | clN0YXRlMREwDwYDVQQHDAhZb3VyQ2l0eTEQMA4GA1UECgwHWW91ck9yZzEQMA4G | ||
| 8 | A1UEAwwHY2xpZW50MjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANik | ||
| 9 | xK/PaOCf2ewyWsZ2paKGWTBmu+72qDDIIJHYAT+7vp/n7m91K0+MhzOsDwdJH/vH | ||
| 10 | oT1Wy30Q6eGRG6EgiL6oHbWWp+Rp6zDHAHXc+IYDWqs6ipUOYBbaXllHirnlkG3z | ||
| 11 | XJ11d05gxWPsXjDw96O91CKJPtSIC0kyVU4E22SM0Qcv0IaHsBG1+bYOtOT0wNE5 | ||
| 12 | v/pvNJYP7Oe4H+8s6rZZr+S5AT+JdU7B4+tyzI40M+4cjrVi987C3Y1qZ80MN4L6 | ||
| 13 | IWSjSVOwe8I1Ktj7fJ11GBGsWrxeOu4G9KtpVTyI+TNyg6UMR805J6c+BR6t7C5Z | ||
| 14 | aUdsAaqX66Nsw3pNDo8CAwEAAaOCATowggE2MAkGA1UdEwQCMAAwEQYJYIZIAYb4 | ||
| 15 | QgEBBAQDAgeAMDMGCWCGSAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBDbGll | ||
| 16 | bnQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFNh/IRK0n80go6/SriULim3nGAkKMIGc | ||
| 17 | BgNVHSMEgZQwgZGAFBK60sjImx482bNf0aGCEpNHldPDoWOkYTBfMQswCQYDVQQG | ||
| 18 | EwJzZzELMAkGA1UECAwCaGkxCzAJBgNVBAoMAmhpMSEwHwYDVQQLDBhoaSBDZXJ0 | ||
| 19 | aWZpY2F0ZSBBdXRob3JpdHkxEzARBgNVBAMMCmhpIFJvb3QgQ0GCFDfKSxjrTTdf | ||
| 20 | Bnpak+/oG+U0xEbXMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcD | ||
| 21 | AjAKBggqhkjOPQQDBANpADBmAjEA6gSZO2a0iijgvcYOm9fB8vIgwYDlrEytmIt4 | ||
| 22 | DWSRP7k9/a+CW6CfNf8IWNDmfNOmAjEAsbP8DRJ3Bb5iEwE3XAACAHANnMNWCJ05 | ||
| 23 | 1FLmX4pIQee05665Uao7HcTCPAGNJpRY | ||
| 24 | -----END CERTIFICATE----- | ||
diff --git a/config_files/certificate-authority/intermediate/serial b/config_files/certificate-authority/intermediate/serial new file mode 100644 index 0000000..0d3c40b --- /dev/null +++ b/config_files/certificate-authority/intermediate/serial | |||
| @@ -0,0 +1 @@ | |||
| 74F214909A4F244A2352A2851BCC0F13109CB811 | |||
diff --git a/config_files/certificate-authority/intermediate/serial.old b/config_files/certificate-authority/intermediate/serial.old new file mode 100644 index 0000000..85ab993 --- /dev/null +++ b/config_files/certificate-authority/intermediate/serial.old | |||
| @@ -0,0 +1 @@ | |||
| 74F214909A4F244A2352A2851BCC0F13109CB810 | |||
diff --git a/config_files/certificate-authority/newcerts/37CA4B18EB4D375F067A5A93EFE81BE534C446D7.pem b/config_files/certificate-authority/newcerts/37CA4B18EB4D375F067A5A93EFE81BE534C446D7.pem new file mode 100644 index 0000000..544c552 --- /dev/null +++ b/config_files/certificate-authority/newcerts/37CA4B18EB4D375F067A5A93EFE81BE534C446D7.pem | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | -----BEGIN CERTIFICATE----- | ||
| 2 | MIIChjCCAgygAwIBAgIUN8pLGOtNN18GelqT7+gb5TTERtcwCgYIKoZIzj0EAwQw | ||
| 3 | XzELMAkGA1UEBhMCc2cxCzAJBgNVBAgMAmhpMQswCQYDVQQKDAJoaTEhMB8GA1UE | ||
| 4 | CwwYaGkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRMwEQYDVQQDDApoaSBSb290IENB | ||
| 5 | MB4XDTI0MTExMjE5MzYwNVoXDTI5MTExMTE5MzYwNVowgYExCzAJBgNVBAYTAlNH | ||
| 6 | MRIwEAYDVQQIDAlzaW5nYXBvcmUxFTATBgNVBAoMDGNvbXBhbnkgbmFtZTEqMCgG | ||
| 7 | A1UECwwhY29tcGFueW5hbWUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRswGQYDVQQD | ||
| 8 | DBJoaSBJbnRlcm1lZGlhdGUgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQHjbSZ | ||
| 9 | S/10AselloIpzwY56f1pntc622qiJ/lB3O9WDkSEt5UpdXumtehRVKHkTCK2U6Wc | ||
| 10 | ldyBA5aVkj4DpSFgLgfWI/+23WzI5bzYtyEW7VuwsEwWTq6y2PpWVULZzUijZjBk | ||
| 11 | MB0GA1UdDgQWBBQSutLIyJsePNmzX9GhghKTR5XTwzAfBgNVHSMEGDAWgBQ1I3hI | ||
| 12 | xxMh1tp7g4SRVmjAgyEapTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQE | ||
| 13 | AwIBhjAKBggqhkjOPQQDBANoADBlAjBpqaP5p29kRuZrdmjTJq/laWpenSZiXK4m | ||
| 14 | rJVaBV2V0ajCB4eqTnS4KJORjTfLVOMCMQCf6T3ZH5TN+f1QkHxDM9DUOkyOqOzv | ||
| 15 | FXvgRTHcWckPqceCIgO4IWFS7WxgyvEmlr4= | ||
| 16 | -----END CERTIFICATE----- | ||
diff --git a/config_files/certificate-authority/serial b/config_files/certificate-authority/serial new file mode 100644 index 0000000..0e25be1 --- /dev/null +++ b/config_files/certificate-authority/serial | |||
| @@ -0,0 +1 @@ | |||
| 37CA4B18EB4D375F067A5A93EFE81BE534C446D8 | |||
diff --git a/config_files/nginx.conf b/config_files/nginx.conf new file mode 100644 index 0000000..0f292af --- /dev/null +++ b/config_files/nginx.conf | |||
| @@ -0,0 +1,88 @@ | |||
| 1 | user nginx; | ||
| 2 | worker_processes auto; | ||
| 3 | |||
| 4 | error_log /var/log/nginx/error.log notice; | ||
| 5 | pid /var/run/nginx.pid; | ||
| 6 | |||
| 7 | events { | ||
| 8 | worker_connections 1024; | ||
| 9 | } | ||
| 10 | |||
| 11 | ssl_engine pkcs11; | ||
| 12 | |||
| 13 | http { | ||
| 14 | types_hash_max_size 4096; | ||
| 15 | include /etc/nginx/mime.types; | ||
| 16 | default_type application/octet-stream; | ||
| 17 | |||
| 18 | |||
| 19 | sendfile on; | ||
| 20 | keepalive_timeout 65; | ||
| 21 | |||
| 22 | ssl_protocols TLSv1.2 TLSv1.3; | ||
| 23 | ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; | ||
| 24 | ssl_prefer_server_ciphers off; | ||
| 25 | |||
| 26 | # Server block for non-SSL routes | ||
| 27 | server { | ||
| 28 | listen 80; | ||
| 29 | server_name localhost; | ||
| 30 | |||
| 31 | # Allow specific routes without SSL | ||
| 32 | location = / { | ||
| 33 | proxy_pass http://localhost:5000; | ||
| 34 | proxy_set_header Host $host; | ||
| 35 | proxy_set_header X-Real-IP $remote_addr; | ||
| 36 | } | ||
| 37 | |||
| 38 | location = /c { | ||
| 39 | proxy_pass http://localhost:5000; | ||
| 40 | proxy_set_header Host $host; | ||
| 41 | proxy_set_header X-Real-IP $remote_addr; | ||
| 42 | } | ||
| 43 | |||
| 44 | location ~ ^/v/ { | ||
| 45 | proxy_pass http://localhost:5000; | ||
| 46 | proxy_set_header Host $host; | ||
| 47 | proxy_set_header X-Real-IP $remote_addr; | ||
| 48 | } | ||
| 49 | |||
| 50 | # Redirect all other routes to HTTPS | ||
| 51 | location / { | ||
| 52 | return 301 https://$host$request_uri; | ||
| 53 | } | ||
| 54 | } | ||
| 55 | |||
| 56 | # Server block for SSL routes | ||
| 57 | server { | ||
| 58 | listen 443 ssl; | ||
| 59 | server_name localhost; | ||
| 60 | |||
| 61 | # ssl_certificate /etc/nginx/certs/server.crt; | ||
| 62 | # ssl_certificate_key /etc/nginx/certs/server.key; | ||
| 63 | # ssl_client_certificate /etc/nginx/certs/ca.pem; | ||
| 64 | # ssl_verify_client on; | ||
| 65 | |||
| 66 | ssl_certificate /etc/nginx/certs/hsm_server.crt; | ||
| 67 | ssl_certificate_key "engine:pkcs11:pkcs11:serial=DENK0104964;object=serverkey;type=private"; | ||
| 68 | ssl_client_certificate /etc/nginx/certs/hsm_chain.crt; | ||
| 69 | ssl_verify_client on; | ||
| 70 | # Add these debugging settings temporarily | ||
| 71 | ssl_protocols TLSv1.2 TLSv1.3; | ||
| 72 | ssl_session_cache shared:SSL:10m; | ||
| 73 | ssl_session_timeout 10m; | ||
| 74 | ssl_verify_depth 3; | ||
| 75 | ssl_prefer_server_ciphers on; | ||
| 76 | |||
| 77 | # Add error logging for SSL | ||
| 78 | error_log /var/log/nginx/error.log debug; | ||
| 79 | |||
| 80 | location / { | ||
| 81 | proxy_pass http://localhost:5000; | ||
| 82 | proxy_set_header Host $host; | ||
| 83 | proxy_set_header X-Real-IP $remote_addr; | ||
| 84 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
| 85 | proxy_set_header X-Forwarded-Proto $scheme; | ||
| 86 | } | ||
| 87 | } | ||
| 88 | } | ||
diff --git a/config_files/nginx.service b/config_files/nginx.service new file mode 100644 index 0000000..7b5a697 --- /dev/null +++ b/config_files/nginx.service | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | [Unit] | ||
| 2 | Description=The nginx HTTP and reverse proxy server | ||
| 3 | After=network-online.target remote-fs.target nss-lookup.target | ||
| 4 | Wants=network-online.target | ||
| 5 | |||
| 6 | [Service] | ||
| 7 | Type=forking | ||
| 8 | PIDFile=/run/nginx.pid | ||
| 9 | # Nginx will fail to start if /run/nginx.pid already exists but has the wrong | ||
| 10 | # SELinux context. This might happen when running `nginx -t` from the cmdline. | ||
| 11 | # https://bugzilla.redhat.com/show_bug.cgi?id=1268621 | ||
| 12 | ExecStartPre=/usr/bin/rm -f /run/nginx.pid | ||
| 13 | ExecStartPre=/usr/sbin/nginx -t | ||
| 14 | ExecStart=/usr/sbin/nginx | ||
| 15 | ExecReload=/usr/sbin/nginx -s reload | ||
| 16 | KillSignal=SIGQUIT | ||
| 17 | TimeoutStopSec=5 | ||
| 18 | KillMode=mixed | ||
| 19 | PrivateTmp=true | ||
| 20 | Environment="OPENSSL_CONF=/etc/pki/tls/openssl.pkcs11.cnf" | ||
| 21 | |||
| 22 | [Install] | ||
| 23 | WantedBy=multi-user.target | ||
diff --git a/config_files/nitrohsm-ca-docs-complete-and-very-messy/nitrohsm-in-action b/config_files/nitrohsm-ca-docs-complete-and-very-messy/nitrohsm-in-action new file mode 100644 index 0000000..562ebf5 --- /dev/null +++ b/config_files/nitrohsm-ca-docs-complete-and-very-messy/nitrohsm-in-action | |||
| @@ -0,0 +1,147 @@ | |||
| 1 | |||
| 2 | sudo apt install pcscd pcsc-tools opensc openssl gnutls-bin | ||
| 3 | sudo dnf install -y opensc openssl openssl-pkcs11 yubico-piv-tool yubikey-manager usbutils gnutls-utils #try this first. then sc-hsm-tool and pkcs11-tool. | ||
| 4 | sudo dnf install -y pcsc-lite pcsc-lite-ccid | ||
| 5 | sudo systemctl start pcscd | ||
| 6 | sudo systemctl enable pcscd | ||
| 7 | sudo opensc-tool -l | ||
| 8 | |||
| 9 | so-pin 3537363231383830 | ||
| 10 | userpin 648219 | ||
| 11 | |||
| 12 | 7535439178124602 | ||
| 13 | |||
| 14 | pkcs11-tool --login --login-type so --so-pin 1234123412341234 --change-pin --new-pin 3537363231383830 | ||
| 15 | opensc-tool -l # to list devices | ||
| 16 | sc-hsm-tool -X -r 1 # -r is device number. to reset the device, you need so pin and userpin | ||
| 17 | sc-hsm-tool --initialize --so-pin 3537363231383830 --pin 648219 -r 1 | ||
| 18 | ykman piv reset #reset yubikey piv | ||
| 19 | |||
| 20 | find / -name opensc-pkcs11.so | ||
| 21 | |||
| 22 | TESTING BEFORE OPERATION | ||
| 23 | ubuntu ONLY UBUNTU PKCS11 WORKS TO DISPLAY ALL THE REQUIRED DATA AND PASSES ALL TESTS | ||
| 24 | pkcs11-tool --module /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so --login --pin 648219 --test | ||
| 25 | /usr/lib64/opensc-pkcs11.so | ||
| 26 | /usr/lib64/pkcs11/opensc-pkcs11.so on fedora | ||
| 27 | pkcs11-tool --module /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so --login --pin 648219 --list-objects | ||
| 28 | OPENSSL_CONF=./hsm.conf openssl engine | ||
| 29 | the following should be printed for openssl | ||
| 30 | (dynamic) Dynamic engine loading support | ||
| 31 | (pkcs11) pkcs11 engine | ||
| 32 | |||
| 33 | |||
| 34 | DOCUMNETATION FOR CA + nginx | ||
| 35 | |||
| 36 | pkcs11-tool --module /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so --login --pin 648219 --keypairgen --key-type rsa:2048 --id 03 --label "serverkey" | ||
| 37 | openssl req -engine pkcs11 -keyform engine -new -key "pkcs11:serial=DENK0302043;object=serverkey;type=private;pin-value=648219" -subj "/C=US/ST=YourState/L=YourCity/O=YourOrganization/CN=yourdomain.com" -out server.csr | ||
| 38 | openssl req -text -noout -verify -in server.csr # to verify the certificate | ||
| 39 | openssl ca -config ../sign_server_and_client_csrs.ini -engine pkcs11 -keyform engine -extensions server_cert -days 375 -notext -md sha512 -create_serial -in server.csr -out server.crt | ||
| 40 | openssl x509 -in server.crt -text -noout | grep -A 1 "Extended Key Usage" # output web server authentication | ||
| 41 | |||
| 42 | 010203040506070801020304050607080102030405060708 yubikey manageemnt, normal key 123456 | ||
| 43 | brew install gnutls | ||
| 44 | yubico-piv-tool -a generate -s 9a -k -A RSA2048 -o yubi_pubkey.pem | ||
| 45 | yubico-piv-tool -a verify-pin -a request-certificate -s 9a -i yubi_pubkey.pem -S '/CN=hii Usenamer/O=Example Corp/C=US/' -o yubi.csr | ||
| 46 | openssl ca -config ../sign_server_and_client_csrs.ini -engine pkcs11 -keyform engine -extensions client_cert -days 375 -notext -md sha512 -create_serial -in yubi.csr -out yubi.crt | ||
| 47 | openssl x509 -in yubi.crt -text -noout | grep -A 1 "Extended Key Usage" # output web client authentication | ||
| 48 | cp yubi.crt yubi.crt.pem | ||
| 49 | yubico-piv-tool -a import-certificate -s 9a -k -i yubi.crt.pem -K PEM | ||
| 50 | p11tool --list-tokens | ||
| 51 | curl -E 'pkcs11:model=PKCS%2315%20emulated;manufacturer=piv_II;serial=00000000;token=hii%20Usenamer' https://127.0.0.1 -k | ||
| 52 | curl -E 'pkcs11:model=PKCS%2315%20emulated;manufacturer=piv_II;serial=00000000;token=hii%20Usenamer;pin-value=123456' https://127.0.0.1 -k | ||
| 53 | can do curl -v xxxxxxxx as well for more verbose. | ||
| 54 | |||
| 55 | openssl genrsa -out client.key 2048 | ||
| 56 | openssl req -new -key client.key -out client.csr -subj "/C=US/ST=YourState/L=YourCity/O=YourOrg/CN=client2" | ||
| 57 | openssl ca -config ../sign_server_and_client_csrs.ini -engine pkcs11 -keyform engine -extensions client_cert -days 375 -notext -md sha512 -create_serial -in client.csr -out client.crt | ||
| 58 | openssl x509 -in client.crt -text -noout | grep -A 1 "Extended Key Usage" # output web client authentication | ||
| 59 | curl https://127.0.0.1 --cacert ../../intermediate/certs/chain.crt --cert client.crt --key client.key -k | ||
| 60 | |||
| 61 | STILL WILL HAVE ERROR BECAUSE URL REQUEST IS 127.0.0.1, if this is a public domain, curl checks the url in the cert and the requested url and if they both match, there should be no error when curling without -k | ||
| 62 | |||
| 63 | openssl version -d # to find the default config file dir | ||
| 64 | copy hsm.conf to the directory | ||
| 65 | sudo nano /lib/systemd/system/nginx.service | ||
| 66 | add this to under service | ||
| 67 | Environment=LANG=C | ||
| 68 | Environment="OPENSSL_CONF=/usr/lib/ssl/hsm.conf" | ||
| 69 | sudo systemctl daemon-reload | ||
| 70 | |||
| 71 | pkcs15-tool --list-info | ||
| 72 | to get the serial number value of the device for the key | ||
| 73 | p11tool --list-all | ||
| 74 | p11tool --login --list-all pkcs11:model= | ||
| 75 | |||
| 76 | ssl_engine pkcs11; # put this after events section, before http. | ||
| 77 | ssl_certificate /home/x/auths2/config/signing_area/server_cert.crt; | ||
| 78 | ssl_certificate_key "engine:pkcs11:pkcs11:serial=DENK0302043;object=serverkey;type=private"; | ||
| 79 | ssl_client_certificate /home/x/auths2/intermediate/certs/chain.crt; | ||
| 80 | ssl_verify_client on; | ||
| 81 | |||
| 82 | cat server.crt ../intermediate/certs/intermediate.crt ../certs/root.crt > fullchain.crt | ||
| 83 | |||
| 84 | curl -X POST http://127.0.0.1/generate_verification -k | ||
| 85 | curl -X POST -d "verify=wrIFRSJZ" -E 'pkcs11:model=PKCS%2315%20emulated;manufacturer=piv_II;serial=00000000;token=hii%20Usenamer;pin-value=123456' https://127.0.0.1/verify -k | ||
| 86 | curl -E 'pkcs11:model=PKCS%2315%20emulated;manufacturer=piv_II;serial=00000000;token=hii%20Usenamer;pin-value=123456' https://127.0.0.1/check?string=wrIFRSJZ -k | ||
| 87 | |||
| 88 | #change the check to not require authentication | ||
| 89 | |||
| 90 | https://www.entrust.com/sites/default/files/documentation/integration-guides/nginx-server-nhield-v12-60-11_ig.pdf | ||
| 91 | https://docs.nitrokey.com/hsm/linux/certificate-authority | ||
| 92 | https://github.com/OpenSC/libp11/blob/5c99a1467e624981181ada75f41315cd1cf13e37/src/eng_parse.c | ||
| 93 | ^ is the pkcs uri for openssl -key | ||
| 94 | |||
| 95 | DOCUMNETATION FOR CA + nginx END | ||
| 96 | |||
| 97 | |||
| 98 | yubico | ||
| 99 | yubico-piv-tool -a unblock-pin -P 12345678 -N 123456 | ||
| 100 | 123456 pin default | ||
| 101 | 12345678 pin unlock key default | ||
| 102 | 010203040506070801020304050607080102030405060708 management key default | ||
| 103 | ssh -I /usr/lib64/pkcs11/opensc-pkcs11.so user@ip #then enter the userpin for yubikey | ||
| 104 | |||
| 105 | |||
| 106 | should work | ||
| 107 | openssl dgst -engine pkcs11 -keyform engine -sha256 -sign "pkcs11:id=%01" -out signature.bin txt | ||
| 108 | openssl dgst -engine pkcs11 -keyform engine -sha256 -verify "pkcs11:id=%01" -signature signature.bin txt | ||
| 109 | openssl dgst -engine pkcs11 -keyform engine -sha256 -verify 01 -signature signature.bin txt #sign should work as well | ||
| 110 | pkcs15-tool --read-public-key 01 > pubkey | ||
| 111 | openssl dgst -sha256 -verify pubkey -signature signature.bin txt | ||
| 112 | |||
| 113 | |||
| 114 | openssl genrsa -out rootCA.key 2048 | ||
| 115 | openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem -subj "/CN=Root CA" | ||
| 116 | openssl genrsa -out client.key 2048 | ||
| 117 | openssl req -new -key client.key -out client.csr -subj "/CN=Client" | ||
| 118 | openssl x509 -req -in client.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out client.crt -days 500 -sha256 | ||
| 119 | openssl verify -CAfile rootCA.pem client.crt | ||
| 120 | #$client.crt: OK | ||
| 121 | |||
| 122 | |||
| 123 | untested | ||
| 124 | pkcs11-tool --module /usr/lib64/pkcs11/opensc-pkcs11.so -L #list | ||
| 125 | yubico-piv-tool -astatus #list | ||
| 126 | pkcs11-tool --module /usr/lib64/pkcs11/opensc-pkcs11.so --slot-index 1 --login --pin 648219 --list-objects | ||
| 127 | |||
| 128 | |||
| 129 | generate the key | ||
| 130 | pkcs11-tool --module /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so --login --pin 648219 --keypairgen --key-type rsa:2048 --id 01 --label "foo" | ||
| 131 | |||
| 132 | sign the file and create an output | ||
| 133 | pkcs11-tool --module /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so --login --pin 648219 --sign --id 01 --input-file <input-file> --output-file <signature-file> | ||
| 134 | pkcs11-tool --module /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so --login --pin 648219 --sign --label "foo" --input-file <input-file> --output-file <signature-file> | ||
| 135 | |||
| 136 | |||
| 137 | pkcs11-tool --module /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so --login --pin 648219 --verify --id 01 --input-file <input-file> --signature-file <signature-file> | ||
| 138 | pkcs11-tool --module /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so --login --pin 648219 --verify --label "foo" --input-file <input-file> --signature-file <signature-file> | ||
| 139 | |||
| 140 | # Example test command sequence | ||
| 141 | echo "Test data" > testdata.txt | ||
| 142 | pkcs11-tool --module /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so --login --pin 648219 --id 01 --type privkey --sign -i testdata.txt -o signeddata.bin | ||
| 143 | pkcs11-tool --module /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so --login --pin 648219 --id 01 --type pubkey --verify -i testdata.txt -s signeddata.bin | ||
| 144 | |||
| 145 | |||
| 146 | pkcs11-tool --module $MODULE --login --pin YOUR_PIN --list-objects | ||
| 147 | |||
diff --git a/config_files/nitrohsm-ca-docs-complete-and-very-messy/nitrohsm-official-docs b/config_files/nitrohsm-ca-docs-complete-and-very-messy/nitrohsm-official-docs new file mode 100644 index 0000000..a627ad9 --- /dev/null +++ b/config_files/nitrohsm-ca-docs-complete-and-very-messy/nitrohsm-official-docs | |||
| @@ -0,0 +1,507 @@ | |||
| 1 | pkcs11-tool -l --keypairgen --key-type EC:secp384r1 --label root | ||
| 2 | or | ||
| 3 | pkcs11-tool -l --keypairgen --key-type EC:secp256r1 --label root | ||
| 4 | pkcs11-tool -l --keypairgen --key-type rsa:4096 --label root | ||
| 5 | |||
| 6 | pki_dir=/opt/certificate-authority | ||
| 7 | mkdir $pki_dir | ||
| 8 | cd $pki_dir | ||
| 9 | mkdir certs config crl newcerts intermediate intermediate/certs intermediate/crl intermediate/csr intermediate/newcerts | ||
| 10 | touch index.txt intermediate/index.txt | ||
| 11 | cd config | ||
| 12 | |||
| 13 | # Arch Linux | ||
| 14 | pacman -S community/opensc community/libp11 | ||
| 15 | |||
| 16 | # Ubuntu | ||
| 17 | sudo apt-get install opensc gnutls-bin | ||
| 18 | |||
| 19 | # Generate private key on HSM | ||
| 20 | $ pkcs11-tool -l --keypairgen --key-type EC:secp384r1 --label root | ||
| 21 | Using slot 0 with a present token (0x0) | ||
| 22 | Logging in to "SmartCard-HSM (UserPIN)". | ||
| 23 | Please enter User PIN: | ||
| 24 | Key pair generated: | ||
| 25 | Private Key Object; EC | ||
| 26 | label: root | ||
| 27 | ID: e0161cc8b6f5d66ac6835ecdecb623fc0506a675 | ||
| 28 | Usage: sign, derive | ||
| 29 | Access: none | ||
| 30 | Public Key Object; EC EC_POINT 384 bits | ||
| 31 | EC_POINT: 046104c1e7b40e1ef9e5d47399aeeda695026c9eb626462059eb696e8f2b647b42d64ac3b7fc7a5b31aa3edf9bce46b2cdcf8e5d190b13601d3d14ffb119c8cf60033c6b78ba579b85113ca536eef1cf85ba418ff0110a56ec881b329e0562e090a3e7 | ||
| 32 | EC_PARAMS: 06052b81040022 | ||
| 33 | label: root | ||
| 34 | ID: e0161cc8b6f5d66ac6835ecdecb623fc0506a675 | ||
| 35 | Usage: verify, derive | ||
| 36 | Access: none | ||
| 37 | |||
| 38 | |||
| 39 | #to get the id | ||
| 40 | pkcs11-tool -O | ||
| 41 | |||
| 42 | vim create_root_cert.ini | ||
| 43 | [ ca ] | ||
| 44 | # `man ca` | ||
| 45 | default_ca = CA_default | ||
| 46 | |||
| 47 | [ CA_default ] | ||
| 48 | # Directory and file locations. | ||
| 49 | dir = /opt/certificate-authority | ||
| 50 | certs = $dir/certs | ||
| 51 | crl_dir = $dir/crl | ||
| 52 | new_certs_dir = $dir/newcerts | ||
| 53 | database = $dir/index.txt | ||
| 54 | serial = $dir/serial | ||
| 55 | |||
| 56 | # SHA-1 is deprecated, so use SHA-2 instead. | ||
| 57 | default_md = sha512 | ||
| 58 | |||
| 59 | name_opt = ca_default | ||
| 60 | cert_opt = ca_default | ||
| 61 | default_days = 375 | ||
| 62 | preserve = no | ||
| 63 | policy = policy_strict | ||
| 64 | |||
| 65 | [ policy_strict ] | ||
| 66 | # The root CA should only sign intermediate certificates that match. | ||
| 67 | # See the POLICY FORMAT section of `man ca`. | ||
| 68 | countryName = match | ||
| 69 | stateOrProvinceName = match | ||
| 70 | organizationName = match | ||
| 71 | organizationalUnitName = optional | ||
| 72 | commonName = supplied | ||
| 73 | emailAddress = optional | ||
| 74 | |||
| 75 | [ req ] | ||
| 76 | # Options for the `req` tool (`man req`). | ||
| 77 | default_bits = 4096 | ||
| 78 | distinguished_name = req_distinguished_name | ||
| 79 | string_mask = utf8only | ||
| 80 | prompt = no | ||
| 81 | |||
| 82 | # SHA-1 is deprecated, so use SHA-2 instead. | ||
| 83 | default_md = sha512 | ||
| 84 | |||
| 85 | [ req_distinguished_name ] | ||
| 86 | C = <two lettter country> | ||
| 87 | ST = <full state name> | ||
| 88 | O = <your company> | ||
| 89 | OU = <your company> Certificate Authority | ||
| 90 | CN = <your company> Root CA | ||
| 91 | |||
| 92 | [ v3_ca ] | ||
| 93 | # Extensions for a typical CA (`man x509v3_config`). | ||
| 94 | subjectKeyIdentifier = hash | ||
| 95 | authorityKeyIdentifier = keyid:always,issuer | ||
| 96 | basicConstraints = critical, CA:true | ||
| 97 | keyUsage = critical, digitalSignature, cRLSign, keyCertSign | ||
| 98 | |||
| 99 | |||
| 100 | #Generate the self-signed public certificate from the private key. Use the private key id value from earlier. | ||
| 101 | $ openssl req -config create_root_cert.ini -engine pkcs11 -keyform engine -key e0161cc8b6f5d66ac6835ecdecb623fc0506a675 -new -x509 -days 3650 -sha512 -extensions v3_ca -out ../certs/root.crt | ||
| 102 | engine "pkcs11" set. | ||
| 103 | Enter PKCS#11 token PIN for SmartCard-HSM (UserPIN): | ||
| 104 | |||
| 105 | #verify stuff matches | ||
| 106 | $ openssl x509 -noout -text -in ../certs/root.crt | ||
| 107 | Certificate: | ||
| 108 | Data: | ||
| 109 | Version: 3 (0x2) | ||
| 110 | Serial Number: | ||
| 111 | 25:ac:e1:36:75:67:26:1d:bb:96:4b:84:c2:2d:83:25:7b:cc:e0:e5 | ||
| 112 | Signature Algorithm: ecdsa-with-SHA512 | ||
| 113 | Issuer: C = US, ST = My State, O = My Company, OU = My Company Certificate Authority, CN = My Company Root CA | ||
| 114 | Validity | ||
| 115 | Not Before: Aug 18 20:13:20 2020 GMT | ||
| 116 | Not After : Aug 16 20:13:20 2030 GMT | ||
| 117 | Subject: C = US, ST = My State, O = My Company, OU = My Company Certificate Authority, CN = My Company Root CA | ||
| 118 | Subject Public Key Info: | ||
| 119 | Public Key Algorithm: id-ecPublicKey | ||
| 120 | Public-Key: (384 bit) | ||
| 121 | pub: | ||
| 122 | 04:c1:e7:b4:0e:1e:f9:e5:d4:73:99:ae:ed:a6:95: | ||
| 123 | 02:6c:9e:b6:26:46:20:59:eb:69:6e:8f:2b:64:7b: | ||
| 124 | 42:d6:4a:c3:b7:fc:7a:5b:31:aa:3e:df:9b:ce:46: | ||
| 125 | b2:cd:cf:8e:5d:19:0b:13:60:1d:3d:14:ff:b1:19: | ||
| 126 | c8:cf:60:03:3c:6b:78:ba:57:9b:85:11:3c:a5:36: | ||
| 127 | ee:f1:cf:85:ba:41:8f:f0:11:0a:56:ec:88:1b:32: | ||
| 128 | 9e:05:62:e0:90:a3:e7 | ||
| 129 | ASN1 OID: secp384r1 | ||
| 130 | NIST CURVE: P-384 | ||
| 131 | X509v3 extensions: | ||
| 132 | X509v3 Subject Key Identifier: | ||
| 133 | F1:FA:61:75:0B:AC:3C:95:97:EF:73:3C:3F:38:22:B1:DB:D9:BF:41 | ||
| 134 | X509v3 Authority Key Identifier: | ||
| 135 | keyid:F1:FA:61:75:0B:AC:3C:95:97:EF:73:3C:3F:38:22:B1:DB:D9:BF:41 | ||
| 136 | |||
| 137 | X509v3 Basic Constraints: critical | ||
| 138 | CA:TRUE | ||
| 139 | X509v3 Key Usage: critical | ||
| 140 | Digital Signature, Certificate Sign, CRL Sign | ||
| 141 | Signature Algorithm: ecdsa-with-SHA512 | ||
| 142 | 30:64:02:30:53:b8:b6:5a:41:4b:4f:6a:d1:a6:76:88:df:13: | ||
| 143 | d6:da:c7:48:aa:8b:aa:ff:13:6c:d1:00:53:90:92:b5:71:57: | ||
| 144 | eb:d0:bf:3e:5d:2e:62:c0:3e:40:0f:64:25:a5:92:0f:02:30: | ||
| 145 | 15:0a:19:d5:a2:09:86:d8:9d:07:67:71:c3:84:f2:6b:90:20: | ||
| 146 | 2d:29:10:9e:4c:73:7a:55:56:4b:dc:fe:8d:3f:f0:9c:20:e1: | ||
| 147 | 5a:74:fb:41:86:ad:a4:66:61:74:d7:fd | ||
| 148 | |||
| 149 | |||
| 150 | |||
| 151 | |||
| 152 | intermediate authority | ||
| 153 | |||
| 154 | # Generate private key on HSM | ||
| 155 | $ pkcs11-tool -l --keypairgen --key-type EC:secp384r1 --label intermediate | ||
| 156 | Using slot 0 with a present token (0x0) | ||
| 157 | Logging in to "SmartCard-HSM (UserPIN)". | ||
| 158 | Please enter User PIN: | ||
| 159 | Key pair generated: | ||
| 160 | Private Key Object; EC | ||
| 161 | label: intermediate | ||
| 162 | ID: bcb48fe9b566ae61891aabbfde6a23d4ff3ab639 | ||
| 163 | Usage: sign, derive | ||
| 164 | Access: none | ||
| 165 | Public Key Object; EC EC_POINT 384 bits | ||
| 166 | EC_POINT: 046104d0fb5c0cd10c0b6e4d0f6986755824b624ec9fcd8ff9ae5f0109fe6ff3ad887ca760717da894f3ff84dc8c24fe8c93b0cd840a6aa941bb2866c061cef60e47b893d71852b50d6762af10c951426e55ec8925a6cd83aeae1730311108afdbcdee | ||
| 167 | EC_PARAMS: 06052b81040022 | ||
| 168 | label: intermediate | ||
| 169 | ID: bcb48fe9b566ae61891aabbfde6a23d4ff3ab639 | ||
| 170 | Usage: verify, derive | ||
| 171 | Access: none | ||
| 172 | |||
| 173 | pkcs11-tool -O | ||
| 174 | |||
| 175 | vim create_intermediate_csr.ini | ||
| 176 | |||
| 177 | [ req ] | ||
| 178 | # Options for the `req` tool (`man req`). | ||
| 179 | default_bits = 4096 | ||
| 180 | distinguished_name = req_distinguished_name | ||
| 181 | string_mask = utf8only | ||
| 182 | prompt = no | ||
| 183 | |||
| 184 | # SHA-1 is deprecated, so use SHA-2 instead. | ||
| 185 | [ v3_ca ] | ||
| 186 | # Extensions for a typical CA (`man x509v3_config`). | ||
| 187 | subjectKeyIdentifier = hash | ||
| 188 | authorityKeyIdentifier = keyid:always,issuer | ||
| 189 | basicConstraints = critical, CA:true | ||
| 190 | keyUsage = critical, digitalSignature, cRLSign, keyCertSign | ||
| 191 | default_md = sha512 | ||
| 192 | |||
| 193 | [ req_distinguished_name ] | ||
| 194 | C = <two lettter country> | ||
| 195 | ST = <full state name> | ||
| 196 | O = <your company> | ||
| 197 | OU = <your company> Certificate Authority | ||
| 198 | CN = <your company> Intermediate CA | ||
| 199 | |||
| 200 | #generate csr | ||
| 201 | $ openssl req -config create_intermediate_csr.ini -engine pkcs11 -keyform engine -key bcb48fe9b566ae61891aabbfde6a23d4ff3ab639 -new -sha512 -out ../intermediate/csr/intermediate.csr | ||
| 202 | engine "pkcs11" set. | ||
| 203 | Enter PKCS#11 token PIN for SmartCard-HSM (UserPIN): | ||
| 204 | |||
| 205 | |||
| 206 | $ openssl req -text -noout -verify -in ../intermediate/csr/intermediate.csr | ||
| 207 | verify OK | ||
| 208 | Certificate Request: | ||
| 209 | Data: | ||
| 210 | Version: 1 (0x0) | ||
| 211 | Subject: C = US, ST = My State, O = My Company, OU = My Company Certificate Authority, CN = My Company Intermediate CA | ||
| 212 | Subject Public Key Info: | ||
| 213 | Public Key Algorithm: id-ecPublicKey | ||
| 214 | Public-Key: (384 bit) | ||
| 215 | pub: | ||
| 216 | 04:d0:fb:5c:0c:d1:0c:0b:6e:4d:0f:69:86:75:58: | ||
| 217 | 24:b6:24:ec:9f:cd:8f:f9:ae:5f:01:09:fe:6f:f3: | ||
| 218 | ad:88:7c:a7:60:71:7d:a8:94:f3:ff:84:dc:8c:24: | ||
| 219 | fe:8c:93:b0:cd:84:0a:6a:a9:41:bb:28:66:c0:61: | ||
| 220 | ce:f6:0e:47:b8:93:d7:18:52:b5:0d:67:62:af:10: | ||
| 221 | c9:51:42:6e:55:ec:89:25:a6:cd:83:ae:ae:17:30: | ||
| 222 | 31:11:08:af:db:cd:ee | ||
| 223 | ASN1 OID: secp384r1 | ||
| 224 | NIST CURVE: P-384 | ||
| 225 | Attributes: | ||
| 226 | a0:00 | ||
| 227 | Signature Algorithm: ecdsa-with-SHA512 | ||
| 228 | 30:64:02:30:6a:1d:75:8b:59:99:2c:a8:5d:a0:7f:02:7d:9a: | ||
| 229 | aa:40:74:7a:65:20:03:6b:bc:65:fb:7d:d1:7f:5b:24:ae:6f: | ||
| 230 | 40:16:ac:82:0b:80:9b:81:f9:d9:64:ea:0f:41:4c:d7:02:30: | ||
| 231 | 4d:28:7f:e3:76:52:c7:10:e1:bd:b7:2e:ea:65:78:41:0c:96: | ||
| 232 | 50:5f:e9:1f:be:18:ac:14:ba:65:3f:b0:2a:f4:0f:d0:56:ab: | ||
| 233 | d0:8c:bf:d0:92:9e:f6:e5:f6:8a:af:a5 | ||
| 234 | |||
| 235 | |||
| 236 | find the fully qualified PKCS#11 URI for your private key, this is an example | ||
| 237 | pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0104068;token=SmartCard-HSM%20%28UserPIN%29%00%00%00%00%00%00%00%00%00;id=%E0%16%1C%C8%B6%F5%D6%6A%C6%83%5E%CD%EC%B6%23%FC%05%06%A6%75;object=root;type=private | ||
| 238 | |||
| 239 | $ p11tool --list-all | ||
| 240 | warning: no token URL was provided for this operation; the available tokens are: | ||
| 241 | |||
| 242 | pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0104068;token=SmartCard-HSM%20%28UserPIN%29%00%00%00%00%00%00%00%00%00 | ||
| 243 | |||
| 244 | $ p11tool --login --list-all pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0104068;token=SmartCard-HSM%20%28UserPIN%29%00%00%00%00%00%00%00%00%00 | ||
| 245 | Token 'SmartCard-HSM (UserPIN)' with URL 'pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0104068;token=SmartCard-HSM%20%28UserPIN%29%00%00%00%00%00%00%00%00%00' requires user PIN | ||
| 246 | Enter PIN: | ||
| 247 | Object 0: | ||
| 248 | URL: pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0104068;token=SmartCard-HSM%20%28UserPIN%29%00%00%00%00%00%00%00%00%00;id=%E0%16%1C%C8%B6%F5%D6%6A%C6%83%5E%CD%EC%B6%23%FC%05%06%A6%75;object=root;type=private | ||
| 249 | Type: Private key (EC/ECDSA-SECP384R1) | ||
| 250 | Label: root | ||
| 251 | Flags: CKA_PRIVATE; CKA_NEVER_EXTRACTABLE; CKA_SENSITIVE; | ||
| 252 | ID: e0:16:1c:c8:b6:f5:d6:6a:c6:83:5e:cd:ec:b6:23:fc:05:06:a6:75 | ||
| 253 | |||
| 254 | Object 1: | ||
| 255 | URL: pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0104068;token=SmartCard-HSM%20%28UserPIN%29%00%00%00%00%00%00%00%00%00;id=%E0%16%1C%C8%B6%F5%D6%6A%C6%83%5E%CD%EC%B6%23%FC%05%06%A6%75;object=root;type=public | ||
| 256 | Type: Public key (EC/ECDSA-SECP384R1) | ||
| 257 | Label: root | ||
| 258 | ID: e0:16:1c:c8:b6:f5:d6:6a:c6:83:5e:cd:ec:b6:23:fc:05:06:a6:75 | ||
| 259 | |||
| 260 | Object 2: | ||
| 261 | URL: pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0104068;token=SmartCard-HSM%20%28UserPIN%29%00%00%00%00%00%00%00%00%00;id=%BC%B4%8F%E9%B5%66%AE%61%89%1A%AB%BF%DE%6A%23%D4%FF%3A%B6%39;object=intermediate;type=private | ||
| 262 | Type: Private key (EC/ECDSA-SECP384R1) | ||
| 263 | Label: intermediate | ||
| 264 | Flags: CKA_PRIVATE; CKA_NEVER_EXTRACTABLE; CKA_SENSITIVE; | ||
| 265 | ID: bc:b4:8f:e9:b5:66:ae:61:89:1a:ab:bf:de:6a:23:d4:ff:3a:b6:39 | ||
| 266 | |||
| 267 | Object 3: | ||
| 268 | URL: pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0104068;token=SmartCard-HSM%20%28UserPIN%29%00%00%00%00%00%00%00%00%00;id=%BC%B4%8F%E9%B5%66%AE%61%89%1A%AB%BF%DE%6A%23%D4%FF%3A%B6%39;object=intermediate;type=public | ||
| 269 | Type: Public key (EC/ECDSA-SECP384R1) | ||
| 270 | Label: intermediate | ||
| 271 | ID: bc:b4:8f:e9:b5:66:ae:61:89:1a:ab:bf:de:6a:23:d4:ff:3a:b6:39 | ||
| 272 | |||
| 273 | |||
| 274 | vim sign_intermediate_csr.ini | ||
| 275 | |||
| 276 | [ ca ] | ||
| 277 | # `man ca` | ||
| 278 | default_ca = CA_default | ||
| 279 | |||
| 280 | [ CA_default ] | ||
| 281 | # Directory and file locations. | ||
| 282 | dir = /opt/certificate-authority | ||
| 283 | certs = $dir/certs | ||
| 284 | crl_dir = $dir/crl | ||
| 285 | new_certs_dir = $dir/newcerts | ||
| 286 | database = $dir/index.txt | ||
| 287 | serial = $dir/serial | ||
| 288 | |||
| 289 | # The root key and root certificate. | ||
| 290 | private_key = pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0104068;token=SmartCard-HSM%20%28UserPIN%29%00%00%00%00%00%00%00%00%00;id=%E0%16%1C%C8%B6%F5%D6%6A%C6%83%5E%CD%EC%B6%23%FC%05%06%A6%75;object=root;type=private | ||
| 291 | certificate = ../certs/root.crt | ||
| 292 | |||
| 293 | # SHA-1 is deprecated, so use SHA-2 instead. | ||
| 294 | default_md = sha512 | ||
| 295 | |||
| 296 | name_opt = ca_default | ||
| 297 | cert_opt = ca_default | ||
| 298 | default_days = 375 | ||
| 299 | preserve = no | ||
| 300 | policy = policy_loose | ||
| 301 | |||
| 302 | [ policy_loose ] | ||
| 303 | # Allow the intermediate CA to sign a more diverse range of certificates. | ||
| 304 | # See the POLICY FORMAT section of the `ca` man page. | ||
| 305 | countryName = optional | ||
| 306 | stateOrProvinceName = optional | ||
| 307 | localityName = optional | ||
| 308 | organizationName = optional | ||
| 309 | organizationalUnitName = optional | ||
| 310 | commonName = supplied | ||
| 311 | emailAddress = optional | ||
| 312 | |||
| 313 | [ v3_intermediate_ca ] | ||
| 314 | # Extensions for a typical intermediate CA (`man x509v3_config`). | ||
| 315 | subjectKeyIdentifier = hash | ||
| 316 | authorityKeyIdentifier = keyid:always,issuer | ||
| 317 | basicConstraints = critical, CA:true, pathlen:0 | ||
| 318 | keyUsage = critical, digitalSignature, cRLSign, keyCertSign | ||
| 319 | |||
| 320 | |||
| 321 | sign intermediate with root | ||
| 322 | $ openssl ca -config sign_intermediate_csr.ini -engine pkcs11 -keyform engine -extensions v3_intermediate_ca -days 1825 -notext -md sha512 -create_serial -in ../intermediate/csr/intermediate.csr -out ../intermediate/certs/intermediate.crt | ||
| 323 | engine "pkcs11" set. | ||
| 324 | Using configuration from sign_intermediate_csr.ini | ||
| 325 | Enter PKCS#11 token PIN for SmartCard-HSM (UserPIN): | ||
| 326 | Check that the request matches the signature | ||
| 327 | Signature ok | ||
| 328 | Certificate Details: | ||
| 329 | Serial Number: | ||
| 330 | 35:47:4d:05:12:cc:e1:a8:b6:bf:dd:3e:c8:29:7b:18:c0:a1:5c:68 | ||
| 331 | Validity | ||
| 332 | Not Before: Aug 18 20:44:17 2020 GMT | ||
| 333 | Not After : Aug 17 20:44:17 2025 GMT | ||
| 334 | Subject: | ||
| 335 | countryName = US | ||
| 336 | stateOrProvinceName = My State | ||
| 337 | organizationName = My Company | ||
| 338 | organizationalUnitName = My Company Certificate Authority | ||
| 339 | commonName = My Company Intermediate CA | ||
| 340 | X509v3 extensions: | ||
| 341 | X509v3 Subject Key Identifier: | ||
| 342 | 1D:4F:E5:ED:11:42:9A:AC:25:E4:51:A3:42:67:97:39:A0:10:AE:82 | ||
| 343 | X509v3 Authority Key Identifier: | ||
| 344 | keyid:F1:FA:61:75:0B:AC:3C:95:97:EF:73:3C:3F:38:22:B1:DB:D9:BF:41 | ||
| 345 | |||
| 346 | X509v3 Basic Constraints: critical | ||
| 347 | CA:TRUE, pathlen:0 | ||
| 348 | X509v3 Key Usage: critical | ||
| 349 | Digital Signature, Certificate Sign, CRL Sign | ||
| 350 | Certificate is to be certified until Aug 17 20:44:17 2025 GMT (1825 days) | ||
| 351 | Sign the certificate? [y/n]:y | ||
| 352 | |||
| 353 | |||
| 354 | 1 out of 1 certificate requests certified, commit? [y/n]y | ||
| 355 | Write out database with 1 new entries | ||
| 356 | Data Base Updated | ||
| 357 | |||
| 358 | # to verify | ||
| 359 | $ openssl x509 -noout -text -in ../intermediate/certs/intermediate.crt | ||
| 360 | Certificate: | ||
| 361 | Data: | ||
| 362 | Version: 3 (0x2) | ||
| 363 | Serial Number: | ||
| 364 | 35:47:4d:05:12:cc:e1:a8:b6:bf:dd:3e:c8:29:7b:18:c0:a1:5c:68 | ||
| 365 | Signature Algorithm: ecdsa-with-SHA512 | ||
| 366 | Issuer: C = US, ST = My State, O = My Company, OU = My Company Certificate Authority, CN = My Company Root CA | ||
| 367 | Validity | ||
| 368 | Not Before: Aug 18 20:44:17 2020 GMT | ||
| 369 | Not After : Aug 17 20:44:17 2025 GMT | ||
| 370 | Subject: C = US, ST = My State, O = My Company, OU = My Company Certificate Authority, CN = My Company Intermediate CA | ||
| 371 | Subject Public Key Info: | ||
| 372 | Public Key Algorithm: id-ecPublicKey | ||
| 373 | Public-Key: (384 bit) | ||
| 374 | pub: | ||
| 375 | 04:d0:fb:5c:0c:d1:0c:0b:6e:4d:0f:69:86:75:58: | ||
| 376 | 24:b6:24:ec:9f:cd:8f:f9:ae:5f:01:09:fe:6f:f3: | ||
| 377 | ad:88:7c:a7:60:71:7d:a8:94:f3:ff:84:dc:8c:24: | ||
| 378 | fe:8c:93:b0:cd:84:0a:6a:a9:41:bb:28:66:c0:61: | ||
| 379 | ce:f6:0e:47:b8:93:d7:18:52:b5:0d:67:62:af:10: | ||
| 380 | c9:51:42:6e:55:ec:89:25:a6:cd:83:ae:ae:17:30: | ||
| 381 | 31:11:08:af:db:cd:ee | ||
| 382 | ASN1 OID: secp384r1 | ||
| 383 | NIST CURVE: P-384 | ||
| 384 | X509v3 extensions: | ||
| 385 | X509v3 Subject Key Identifier: | ||
| 386 | 1D:4F:E5:ED:11:42:9A:AC:25:E4:51:A3:42:67:97:39:A0:10:AE:82 | ||
| 387 | X509v3 Authority Key Identifier: | ||
| 388 | keyid:F1:FA:61:75:0B:AC:3C:95:97:EF:73:3C:3F:38:22:B1:DB:D9:BF:41 | ||
| 389 | |||
| 390 | X509v3 Basic Constraints: critical | ||
| 391 | CA:TRUE, pathlen:0 | ||
| 392 | X509v3 Key Usage: critical | ||
| 393 | Digital Signature, Certificate Sign, CRL Sign | ||
| 394 | Signature Algorithm: ecdsa-with-SHA512 | ||
| 395 | 30:66:02:31:00:9a:6e:08:d2:d6:3a:29:f6:ba:0c:4c:3a:f4: | ||
| 396 | af:40:5e:e0:71:f2:bc:e4:47:f5:b4:ee:10:d7:27:b1:25:0b: | ||
| 397 | 4b:09:78:a1:b8:f2:b8:71:c5:4e:41:33:8e:64:db:ec:eb:02: | ||
| 398 | 31:00:fc:39:26:c2:ad:7b:3c:ab:75:06:34:02:47:79:40:31: | ||
| 399 | 1d:eb:17:ad:32:10:67:97:37:6f:7f:3c:ce:3e:12:3c:e9:7c: | ||
| 400 | fa:43:3e:34:5d:5e:f4:f3:2f:fd:6a:2f:14:da | ||
| 401 | |||
| 402 | |||
| 403 | $ openssl verify -CAfile ../certs/root.crt ../intermediate/certs/intermediate.crt | ||
| 404 | ../intermediate/certs/intermediate.crt: OK | ||
| 405 | |||
| 406 | #certificate chain | ||
| 407 | cat ../intermediate/certs/intermediate.crt ../certs/root.crt > ../intermediate/certs/chain.crt | ||
| 408 | |||
| 409 | ####################setup ca done, to use the private key of the intermediate certificate to sign the CSRs of your servers | ||
| 410 | |||
| 411 | vim sign_server_csrs.ini | ||
| 412 | |||
| 413 | [ ca ] | ||
| 414 | # `man ca` | ||
| 415 | default_ca = CA_default | ||
| 416 | |||
| 417 | [ CA_default ] | ||
| 418 | # Directory and file locations. | ||
| 419 | dir = /opt/certificate-authority/intermediate | ||
| 420 | certs = $dir/certs | ||
| 421 | crl_dir = $dir/crl | ||
| 422 | new_certs_dir = $dir/newcerts | ||
| 423 | database = $dir/index.txt | ||
| 424 | serial = $dir/serial | ||
| 425 | |||
| 426 | # The root key and root certificate. | ||
| 427 | private_key = pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0104068;token=SmartCard-HSM%20%28UserPIN%29%00%00%00%00%00%00%00%00%00;id=%BC%B4%8F%E9%B5%66%AE%61%89%1A%AB%BF%DE%6A%23%D4%FF%3A%B6%39;object=intermediate;type=private | ||
| 428 | certificate = $dir/certs/intermediate.crt | ||
| 429 | |||
| 430 | # SHA-1 is deprecated, so use SHA-2 instead. | ||
| 431 | default_md = sha512 | ||
| 432 | |||
| 433 | name_opt = ca_default | ||
| 434 | cert_opt = ca_default | ||
| 435 | default_days = 375 | ||
| 436 | preserve = no | ||
| 437 | policy = policy_loose | ||
| 438 | |||
| 439 | [ policy_loose ] | ||
| 440 | # Allow the intermediate CA to sign a more diverse range of certificates. | ||
| 441 | # See the POLICY FORMAT section of the `ca` man page. | ||
| 442 | countryName = optional | ||
| 443 | stateOrProvinceName = optional | ||
| 444 | localityName = optional | ||
| 445 | organizationName = optional | ||
| 446 | organizationalUnitName = optional | ||
| 447 | commonName = supplied | ||
| 448 | emailAddress = optional | ||
| 449 | |||
| 450 | [ server_cert ] | ||
| 451 | # Extensions for server certificates (`man x509v3_config`). | ||
| 452 | basicConstraints = CA:FALSE | ||
| 453 | nsCertType = server | ||
| 454 | nsComment = "OpenSSL Generated Server Certificate" | ||
| 455 | subjectKeyIdentifier = hash | ||
| 456 | authorityKeyIdentifier = keyid,issuer:always | ||
| 457 | keyUsage = critical, digitalSignature, keyEncipherment | ||
| 458 | extendedKeyUsage = serverAuth | ||
| 459 | |||
| 460 | |||
| 461 | $ openssl ca -config sign_server_csrs.ini -engine pkcs11 -keyform engine -extensions server_cert -days 375 -notext -md sha512 -create_serial -in server_cert.csr -out server_cert.crt | ||
| 462 | engine "pkcs11" set. | ||
| 463 | Using configuration from sign_server_csrs.ini | ||
| 464 | Enter PKCS#11 token PIN for SmartCard-HSM (UserPIN): | ||
| 465 | Check that the request matches the signature | ||
| 466 | Signature ok | ||
| 467 | Certificate Details: | ||
| 468 | Serial Number: | ||
| 469 | 40:7f:dc:90:b0:3a:1b:fb:d3:e2:74:8d:40:28:a8:12:f7:7e:c3:74 | ||
| 470 | Validity | ||
| 471 | Not Before: Aug 18 21:32:42 2020 GMT | ||
| 472 | Not After : Aug 28 21:32:42 2021 GMT | ||
| 473 | Subject: | ||
| 474 | countryName = US | ||
| 475 | stateOrProvinceName = My State | ||
| 476 | organizationName = My Company | ||
| 477 | organizationalUnitName = media | ||
| 478 | commonName = media | ||
| 479 | X509v3 extensions: | ||
| 480 | X509v3 Basic Constraints: | ||
| 481 | CA:FALSE | ||
| 482 | Netscape Cert Type: | ||
| 483 | SSL Server | ||
| 484 | Netscape Comment: | ||
| 485 | OpenSSL Generated Server Certificate | ||
| 486 | X509v3 Subject Key Identifier: | ||
| 487 | 26:89:19:95:6C:93:8C:DD:6E:AA:61:D5:C0:E6:78:CC:F1:47:64:FC | ||
| 488 | X509v3 Authority Key Identifier: | ||
| 489 | keyid:1D:4F:E5:ED:11:42:9A:AC:25:E4:51:A3:42:67:97:39:A0:10:AE:82 | ||
| 490 | DirName:/C=US/ST=My State/O=My Company/OU=My Company Certificate Authority/CN=My Company Root CA | ||
| 491 | serial:35:47:4D:05:12:CC:E1:A8:B6:BF:DD:3E:C8:29:7B:18:C0:A1:5C:68 | ||
| 492 | |||
| 493 | X509v3 Key Usage: critical | ||
| 494 | Digital Signature, Key Encipherment | ||
| 495 | X509v3 Extended Key Usage: | ||
| 496 | TLS Web Server Authentication | ||
| 497 | Certificate is to be certified until Aug 28 21:32:42 2021 GMT (375 days) | ||
| 498 | Sign the certificate? [y/n]:y | ||
| 499 | |||
| 500 | |||
| 501 | 1 out of 1 certificate requests certified, commit? [y/n]y | ||
| 502 | Write out database with 1 new entries | ||
| 503 | Data Base Updated | ||
| 504 | |||
| 505 | |||
| 506 | https://docs.nitrokey.com/nitrokeys/features/openpgp-card/certificate-authority | ||
| 507 | there is older document that may not be the same but it looks the same | ||
diff --git a/hsm.conf b/config_files/openssl.pkcs11.cnf index af27cf0..403c7ae 100644 --- a/hsm.conf +++ b/config_files/openssl.pkcs11.cnf | |||
| @@ -15,8 +15,8 @@ pkcs11 = pkcs11_section | |||
| 15 | 15 | ||
| 16 | [pkcs11_section] | 16 | [pkcs11_section] |
| 17 | engine_id = pkcs11 | 17 | engine_id = pkcs11 |
| 18 | dynamic_path = /usr/lib/x86_64-linux-gnu/engines-1.1/libpkcs11.so | 18 | dynamic_path = /usr/lib64/engines-3/libpkcs11.so |
| 19 | MODULE_PATH = /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so #ubuntu | 19 | #MODULE_PATH = /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so #ubuntu |
| 20 | #MODULE_PATH = /usr/lib64/pkcs11/opensc-pkcs11.so #fedora/rocky | 20 | MODULE_PATH = /usr/lib64/pkcs11/opensc-pkcs11.so #fedora/rocky |
| 21 | PIN = 648219 | 21 | PIN = 648219 |
| 22 | init = 0 | 22 | init = 0 |
diff --git a/config_files/org.debian.pcsc-lite.policy b/config_files/org.debian.pcsc-lite.policy new file mode 100644 index 0000000..fc24b62 --- /dev/null +++ b/config_files/org.debian.pcsc-lite.policy | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | <!DOCTYPE policyconfig PUBLIC | ||
| 3 | "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" | ||
| 4 | "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd"> | ||
| 5 | <policyconfig> | ||
| 6 | <vendor>The PCSC-lite Project</vendor> | ||
| 7 | <vendor_url>https://pcsclite.apdu.fr/</vendor_url> | ||
| 8 | <!-- <icon_name>smart-card</icon_name> --> | ||
| 9 | |||
| 10 | <action id="org.debian.pcsc-lite.access_pcsc"> | ||
| 11 | <description>Access to the PC/SC daemon</description> | ||
| 12 | <message>Authentication is required to access the PC/SC daemon</message> | ||
| 13 | <defaults> | ||
| 14 | <allow_any>yes</allow_any> | ||
| 15 | <allow_inactive>yes</allow_inactive> | ||
| 16 | <allow_active>yes</allow_active> | ||
| 17 | </defaults> | ||
| 18 | </action> | ||
| 19 | |||
| 20 | <action id="org.debian.pcsc-lite.access_card"> | ||
| 21 | <description>Access to the smart card</description> | ||
| 22 | <message>Authentication is required to access the smart card</message> | ||
| 23 | <defaults> | ||
| 24 | <allow_any>yes</allow_any> | ||
| 25 | <allow_inactive>yes</allow_inactive> | ||
| 26 | <allow_active>yes</allow_active> | ||
| 27 | </defaults> | ||
| 28 | </action> | ||
| 29 | |||
| 30 | </policyconfig> | ||
| @@ -1,31 +1,10 @@ | |||
| 1 | 1 | ||
| 2 | nginx handles mtls, and allows connection to local gunicorn instance. If mTLS fails, connection fails and event is logged | 2 | |
| 3 | 3 | ||
| 4 | |||
| 5 | ubuntu | ||
| 6 | sudo pip install Flask gunicorn # to install for all users, especially www-data so that the service runs | ||
| 7 | nginx | ||
| 8 | install nginx | ||
| 9 | sudo systemctl enable --now nginx | ||
| 10 | # cat /var/log/nginx/access.log | ||
| 11 | # /etc/nginx/nginx.conf | ||
| 12 | gunicorn | ||
| 13 | gunicorn --bind localhost:5000 app:app # for testing | ||
| 14 | sudo nano /etc/systemd/system/gunicorn1.service # as a service | ||
| 15 | sudo systemctl enable --now gunicorn1 # as a service | ||
| 16 | python | ||
| 17 | app1.py | ||
| 18 | sudo mkdir /var/www | ||
| 19 | sudo chown -R www-data:www-data /var/www | ||
| 20 | sudo cp app1.py /var/www | ||
| 21 | |||
| 22 | |||
| 23 | test | ||
| 24 | # private key | 4 | # private key |
| 25 | openssl genrsa -out ca.key 2048 | 5 | openssl genrsa -out ca.key 2048 |
| 26 | # public certificate | 6 | # public certificate |
| 27 | openssl req -x509 -new -nodes -key ca.key -sha256 -days 1024 -out ca.pem -subj "/C=US/ST=YourState/L=YourCity/O=YourOrg/CN=YourCA" | 7 | openssl req -x509 -new -nodes -key ca.key -sha256 -days 1024 -out ca.pem -subj "/C=US/ST=YourState/L=YourCity/O=YourOrg/CN=YourCA" |
| 28 | |||
| 29 | # server private key | 8 | # server private key |
| 30 | openssl genrsa -out server.key 2048 | 9 | openssl genrsa -out server.key 2048 |
| 31 | # generate certificate signing request | 10 | # generate certificate signing request |
| @@ -39,46 +18,56 @@ openssl x509 -req -in client.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out c | |||
| 39 | 18 | ||
| 40 | openssl genrsa -out wrong_client.key 2048 | 19 | openssl genrsa -out wrong_client.key 2048 |
| 41 | openssl req -new -x509 -key wrong_client.key -out wrong_client.crt -days 365 -subj "/C=US/ST=State/L=City/O=Organization/CN=incorrectclient" | 20 | openssl req -new -x509 -key wrong_client.key -out wrong_client.crt -days 365 -subj "/C=US/ST=State/L=City/O=Organization/CN=incorrectclient" |
| 42 | |||
| 43 | curl https://127.0.0.1 --cacert ca.pem --cert wrong_client.crt --key wrong_client.key -k | 21 | curl https://127.0.0.1 --cacert ca.pem --cert wrong_client.crt --key wrong_client.key -k |
| 44 | curl https://127.0.0.1 --cacert ca.pem --cert client.crt --key client.key -k | 22 | curl https://127.0.0.1 --cacert ca.pem --cert client.crt --key client.key -k |
| 45 | 23 | ||
| 46 | 24 | ||
| 47 | untested | 25 | # Allow nginx to connect to any network port for nginx to go through selinux |
| 48 | sudo cp /path/to/ca.pem /usr/local/share/ca-certificates/your-ca.crt | 26 | also turn off selinux permanently |
| 49 | sudo update-ca-certificates | 27 | sudo setsebool -P httpd_can_network_connect 1 |
| 50 | nginx configuration | 28 | sudo mkdir -p /etc/nginx/certs |
| 51 | ocsp server to check that the server is valid | 29 | sudo cp /flask/v1/keys/* /etc/nginx/certs/ |
| 52 | crl to check if a client is revoked | 30 | sudo chown -R nginx:nginx /etc/nginx/certs |
| 53 | server { | 31 | |
| 54 | listen 443 ssl; | 32 | # no yubikey verification |
| 55 | server_name yourdomain.com; | 33 | curl https://127.0.0.1/v/0ty2 --cacert ca.pem --cert client.crt --key client.key -k |
| 34 | |||
| 35 | # to activate hsm, move these over | ||
| 36 | cat server.crt ../intermediate/certs/intermediate.crt ../certs/root.crt > fullchain.crt | ||
| 37 | cp fullchain.crt /etc/nginx/certs/hsm_chain.crt | ||
| 38 | cp server.crt /etc/nginx/certs/hsm_server.crt | ||
| 39 | sudo pkcs11-tool -L # for denk serial number | ||
| 40 | |||
| 41 | |||
| 42 | openssl version -d | ||
| 43 | |||
| 44 | edit the openssl.conf file | ||
| 45 | /etc/nginx/nginx.conf | ||
| 46 | |||
| 47 | then edit the nginx service file | ||
| 48 | Environment="OPENSSL_CONF=/etc/pki/tls/openssl.pkcs11.cnf" | ||
| 49 | |||
| 50 | add under service | ||
| 51 | systemctl daemon-reload | ||
| 52 | sudo systemctl restart nginx | ||
| 53 | |||
| 54 | |||
| 55 | openssl s_client -connect localhost:443 -cert client.crt -key client.key -CAfile /etc/nginx/certs/hsm_chain.crt | ||
| 56 | |||
| 57 | curl --cert client.crt --key client.key --cacert /etc/nginx/certs/hsm_chain.crt https://localhost:443/ -k | ||
| 58 | |||
| 56 | 59 | ||
| 57 | ssl_certificate /path/to/your/server.crt; | 60 | sudo -u nginx pkcs11-tool --module /usr/lib64/opensc-pkcs11.so --list-objects --login |
| 58 | ssl_certificate_key /path/to/your/server.key; | ||
| 59 | 61 | ||
| 60 | # Client certificate verification | 62 | tail -f /var/log/nginx/error.log # to see ssl errors |
| 61 | ssl_client_certificate /path/to/your/ca.pem; | ||
| 62 | ssl_verify_client on; | ||
| 63 | 63 | ||
| 64 | # Enable OCSP stapling and strict verification | 64 | /usr/share/polkit-1/actions/org.debian.pcsc-lite.policy |
| 65 | ssl_stapling on; | 65 | change all to yes then restart systemctl pcscd |
| 66 | ssl_stapling_verify on; | 66 | if nginx cannot access pcscd(can also prove this by doing a pkcs11-tool list), systemctl pcscd will have error logs) |
| 67 | ssl_trusted_certificate /path/to/your/ca.pem; | ||
| 68 | 67 | ||
| 69 | # Specify resolver for OCSP stapling | ||
| 70 | resolver 8.8.8.8 8.8.4.4 valid=300s; | ||
| 71 | resolver_timeout 10s; | ||
| 72 | 68 | ||
| 73 | # Enforce OCSP response checking strictly | ||
| 74 | ssl_ocsp on; | ||
| 75 | ssl_ocsp_fail closed; | ||
| 76 | 69 | ||
| 77 | # Specify CRL file for client certificate revocation checking | 70 | https://www.redhat.com/en/blog/controlling-access-smart-cards |
| 78 | ssl_crl /etc/nginx/ssl/crl.pem; | ||
| 79 | 71 | ||
| 80 | location / { | ||
| 81 | try_files $uri $uri/ =404; | ||
| 82 | } | ||
| 83 | } | ||
| 84 | 72 | ||
| 73 | sudo curl -vvv -E 'pkcs11:model=PKCS%2315%20emulated;manufacturer=piv_II;serial=00000000;token=user2;pin-value=123456' --cacert fullchain2.crt https://p.0nom.ch/c | ||
diff --git a/flask1.py b/flask1.py new file mode 100644 index 0000000..eb9ff28 --- /dev/null +++ b/flask1.py | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | from flask import Flask | ||
| 2 | from flask import Flask, request, jsonify | ||
| 3 | from tfa import * | ||
| 4 | |||
| 5 | app = Flask(__name__) | ||
| 6 | store = customstore() | ||
| 7 | |||
| 8 | @app.route('/') | ||
| 9 | def hello_world(): | ||
| 10 | return """Hello, World! | ||
| 11 | This is an authentication server | ||
| 12 | Available directories are: | ||
| 13 | /c to create a key | ||
| 14 | /a to authorise a key | ||
| 15 | /v to verify that a key is authorised | ||
| 16 | |||
| 17 | """ | ||
| 18 | |||
| 19 | @app.route('/c', methods=['GET']) | ||
| 20 | def create(): | ||
| 21 | return store.create() | ||
| 22 | |||
| 23 | @app.route('/a/<code>', methods=['GET']) | ||
| 24 | def authenticate(code): | ||
| 25 | if store.authenticate(code): | ||
| 26 | return "True" | ||
| 27 | else: | ||
| 28 | return "False" | ||
| 29 | |||
| 30 | @app.route('/v/<code>', methods=['GET']) | ||
| 31 | def verify(code): | ||
| 32 | if store.check(code): | ||
| 33 | return "True" | ||
| 34 | else: | ||
| 35 | return "False" | ||
| 36 | |||
| 37 | if __name__ == '__main__': | ||
| 38 | app.run(host='0.0.0.0', port=5000, debug=True) | ||
diff --git a/gunicorn1.service b/gunicorn1.service deleted file mode 100644 index 425c453..0000000 --- a/gunicorn1.service +++ /dev/null | |||
| @@ -1,14 +0,0 @@ | |||
| 1 | |||
| 2 | [Unit] | ||
| 3 | Description=gunicorn1 | ||
| 4 | After=network.target | ||
| 5 | |||
| 6 | [Service] | ||
| 7 | User=www-data | ||
| 8 | Group=www-data | ||
| 9 | WorkingDirectory=/var/www | ||
| 10 | ExecStart=/usr/local/bin/gunicorn --workers 3 --bind 0.0.0.0:5000 app1:app | ||
| 11 | |||
| 12 | [Install] | ||
| 13 | WantedBy=multi-user.target | ||
| 14 | |||
diff --git a/keys/ca.key b/keys/ca.key new file mode 100644 index 0000000..7c3e69b --- /dev/null +++ b/keys/ca.key | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | -----BEGIN PRIVATE KEY----- | ||
| 2 | MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDj9RaVE/qG2WMx | ||
| 3 | 6FGzLkdiUtVxHY7Fv2kBQ7CYLdW3DQZDMQlV+a51yBcQ+p/mnrruj6PBKjsNdBla | ||
| 4 | gTIyeuDysN2Ikw32ifL6c/sfwsZDDyik8tfHMBSWmFJ9K2Ra0nHsfLl58282C1wd | ||
| 5 | ti03qb4Hrg8oj9NHd9eJIZSD8sZZCFwbZ3zwh7ZhIGQSwk6LDOCrK7VMeV3bmoYO | ||
| 6 | swBWc3hG/sV/jSsUBSYRw+slyluPLappfNvWk9FrvEsNTBWEJz6pSkaBJXQB8now | ||
| 7 | 8nbFrjTXfTOznxZpUXq5/FvxC1P0cmGsBQxeOJUlQu/asZ7Oyn5xWA6qLdfOtDfm | ||
| 8 | kGCby3a9AgMBAAECggEAPkL2xAkM6D//4+W8SuBdBvHw8lBMap55I6tFVItQUAry | ||
| 9 | pu+ByUXE7M6V3kFV4zt/eyEobN4H+wi21A1tlHQTdLXyDBd+PNQ41UdQU8BzPmWp | ||
| 10 | iEP7w5/SP7+i6CUt59CK5Ti7wB9JRM2df0/+0bE/AgH8ieuenWqSKBZP5iotGqu1 | ||
| 11 | 1rcidAZ2a5fFzaYF2ezK24m0jPKDTiQeAEu258yT4xofwlro2p9EJUFIyMdbbOLZ | ||
| 12 | uF8lQx3b7zT1stmV0e/h6qpxTF2O0D5qjFHDPyt/t//UmYPUZd9A5+pKIyOj7sQ4 | ||
| 13 | m6je2RrGKaT3i2+2budpcWdAs57dlKnuElmPTRMS0QKBgQD5AbiKF5u38NVFf2Jd | ||
| 14 | PsPPSjUOs6VkWCAtUo+TUeOp6KWWS0SGLPQNcjATBfMF140OEZVQXvTZ8fcG+bq4 | ||
| 15 | tu0hBgihtSth5HCp31OjVDub+R4Rng+eMAo/uInUdClTa323DoftFZdo6HD1rSJa | ||
| 16 | /RdJ8BFGsJE+q2lFAcBxnSEwtwKBgQDqXAd85i5C8WCqmO0iyFQ2RbmcJb3VAaCA | ||
| 17 | X42rjTxnOryu4ft7zmiygH5rdZeL43jt38INELf6x0XaiGTnP6xcEizSLcJrnjRf | ||
| 18 | hnmXMO+5XoVlVw5TpPI9IlpNLHti9Ati79hjY35YKpVvgM5WURKtmZRSxk2xZnXf | ||
| 19 | Ne/GKzH4KwKBgQCb9Rb27rhqKZ36TEF4c3JCp5C5p4zEX2mv2VDxjU2RQpRLoNLH | ||
| 20 | Uup8bXNsxsIie5HuKNcjIoYq5yC4LrtjK7czgsrvNUB5rJFf4+9Hkd9P3mSV1jCj | ||
| 21 | /CS/Kj6xYRvtEpsHh0NdG7PcUhFF3m1xHalzdrfrVXVzEfr57JHy1t5N2wKBgGkT | ||
| 22 | qifN7KAHKZhTyL73owpSaM4h/eMrP5NPRG3OfW6rXz3qBJ+WBEtEYWo85x3Jd8bv | ||
| 23 | tEm3XUYLYr6AuP0WB2mgnIgADFPEMydBW/L19gXe42B0j+/g3NucM3C2qPvM/+30 | ||
| 24 | K8kkKtnM/gNodRsubnl3ipEyaFNJ5T+XJ1Jqu5TRAoGAP5Qlo5mS15z4ZauIfBnS | ||
| 25 | DAjFIGGsE8SG5mRpRumDuQUqKHjhjJeSLMMk50s7e0csSZZkcKucjJC+Kzz3NnTi | ||
| 26 | vbVI9wK+RKAOVaxZC/TVy/e581CE0ucIY3hmLnHNSVWC2Dd2uQ724kzSh6/BaKd7 | ||
| 27 | /3duDwAZloiYguwb4WOFWug= | ||
| 28 | -----END PRIVATE KEY----- | ||
diff --git a/keys/ca.pem b/keys/ca.pem new file mode 100644 index 0000000..e1512e4 --- /dev/null +++ b/keys/ca.pem | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | -----BEGIN CERTIFICATE----- | ||
| 2 | MIIDjzCCAnegAwIBAgIUZYpUQVHNHS4qmeYqjIndm0qfL6QwDQYJKoZIhvcNAQEL | ||
| 3 | BQAwVzELMAkGA1UEBhMCVVMxEjAQBgNVBAgMCVlvdXJTdGF0ZTERMA8GA1UEBwwI | ||
| 4 | WW91ckNpdHkxEDAOBgNVBAoMB1lvdXJPcmcxDzANBgNVBAMMBllvdXJDQTAeFw0y | ||
| 5 | NDExMTIwNzQ5MDVaFw0yNzA5MDIwNzQ5MDVaMFcxCzAJBgNVBAYTAlVTMRIwEAYD | ||
| 6 | VQQIDAlZb3VyU3RhdGUxETAPBgNVBAcMCFlvdXJDaXR5MRAwDgYDVQQKDAdZb3Vy | ||
| 7 | T3JnMQ8wDQYDVQQDDAZZb3VyQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK | ||
| 8 | AoIBAQDj9RaVE/qG2WMx6FGzLkdiUtVxHY7Fv2kBQ7CYLdW3DQZDMQlV+a51yBcQ | ||
| 9 | +p/mnrruj6PBKjsNdBlagTIyeuDysN2Ikw32ifL6c/sfwsZDDyik8tfHMBSWmFJ9 | ||
| 10 | K2Ra0nHsfLl58282C1wdti03qb4Hrg8oj9NHd9eJIZSD8sZZCFwbZ3zwh7ZhIGQS | ||
| 11 | wk6LDOCrK7VMeV3bmoYOswBWc3hG/sV/jSsUBSYRw+slyluPLappfNvWk9FrvEsN | ||
| 12 | TBWEJz6pSkaBJXQB8now8nbFrjTXfTOznxZpUXq5/FvxC1P0cmGsBQxeOJUlQu/a | ||
| 13 | sZ7Oyn5xWA6qLdfOtDfmkGCby3a9AgMBAAGjUzBRMB0GA1UdDgQWBBTbW+YSpuO7 | ||
| 14 | G1gTQqIyqUhPvKl7CDAfBgNVHSMEGDAWgBTbW+YSpuO7G1gTQqIyqUhPvKl7CDAP | ||
| 15 | BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCfInNclCK6wBmAK4yz | ||
| 16 | X6rWzcTPu1diEpdK73BLKyeHBHKyiNwQMOrzB7c7XO/h8lwcxFYNl7YpFPbbCr// | ||
| 17 | sLH0PmwM40At++zVtMl1VTCTeEHeEP+DTXWn8fZZ7ayg2+mSC5wr35V86rTODys3 | ||
| 18 | 6GqWPOKacGIPlUJoByjIH/Z/Z8tezhtlOlLSp69ge2BMKAcGFl/OCT7WE4XUf3Nq | ||
| 19 | o1mwjxlss9TQgeN+oDEM7RTyJebYxiCW6Q9LcAefMSOjfoHyeKKHaMK51aA4ezKW | ||
| 20 | bM7AbUv4sNd3o8Wk0kEDjVNfqQeDqiKHir468UVqZuckXToeDgqMQiJ+bAtb+kwQ | ||
| 21 | vA0T | ||
| 22 | -----END CERTIFICATE----- | ||
diff --git a/keys/ca.srl b/keys/ca.srl new file mode 100644 index 0000000..9c39350 --- /dev/null +++ b/keys/ca.srl | |||
| @@ -0,0 +1 @@ | |||
| 5D7525ED04BB4002114F8199CB0C6C6C2DAFC0B9 | |||
diff --git a/keys/client.crt b/keys/client.crt new file mode 100644 index 0000000..1998c53 --- /dev/null +++ b/keys/client.crt | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | -----BEGIN CERTIFICATE----- | ||
| 2 | MIIDfjCCAmagAwIBAgIUXXUl7QS7QAIRT4GZywxsbC2vwLkwDQYJKoZIhvcNAQEL | ||
| 3 | BQAwVzELMAkGA1UEBhMCVVMxEjAQBgNVBAgMCVlvdXJTdGF0ZTERMA8GA1UEBwwI | ||
| 4 | WW91ckNpdHkxEDAOBgNVBAoMB1lvdXJPcmcxDzANBgNVBAMMBllvdXJDQTAeFw0y | ||
| 5 | NDExMTIwNzQ5MDZaFw0yNTExMTIwNzQ5MDZaMFcxCzAJBgNVBAYTAlVTMRIwEAYD | ||
| 6 | VQQIDAlZb3VyU3RhdGUxETAPBgNVBAcMCFlvdXJDaXR5MRAwDgYDVQQKDAdZb3Vy | ||
| 7 | T3JnMQ8wDQYDVQQDDAZjbGllbnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK | ||
| 8 | AoIBAQC8QJ6jSkHaHA13txsZokZxd/h0ITuOWeTCwTsETUT6f4qPdEYovWrSpUzH | ||
| 9 | Zf8O1DvPkJNpRClKn577kKqD3MPlTo6lbFYdiEU/fB1OOVOTQDrp+RHkJxWGUjIf | ||
| 10 | iR6p5XgB7dGe+F40vXvcYacxE1VqkxkCkE8KwPRMG4HDXyG7l0DMWg3UmqyH+Xrt | ||
| 11 | wQkO4/CKQB8wjoIGUvbKmmCy7oybogyj79wRXJ/87WWJlIUx04J9r7Sv10ld7O1o | ||
| 12 | 4e+T7FuTs0e4MIdcbAC/WyIUONnBatVrTdVLxcWF4o49kkJsAyAt+Znz5n7w7O1H | ||
| 13 | qPmXi8mFQgOLVjd00e/EmJfCw2HHAgMBAAGjQjBAMB0GA1UdDgQWBBRuzoPzreMR | ||
| 14 | pQZcPLcVNbFT0q+tVDAfBgNVHSMEGDAWgBTbW+YSpuO7G1gTQqIyqUhPvKl7CDAN | ||
| 15 | BgkqhkiG9w0BAQsFAAOCAQEAhJN1+zYuceZxbPUeN3b8NtYALarLY+hXDVRANo33 | ||
| 16 | ZpjOocaR/P9EyCpYCgtMM6pmB1iSkMCgyD4tnZ1i1hrYYkwcx89X3IuEum9U3BJF | ||
| 17 | P74eW+UO6PtHfxeAPCpzPrWyPkvv1A7yL4mwP2LjYq7MyvMrTcQpFRQNfUY+nKsa | ||
| 18 | I4i68gERLRj5aYNg/QgkXD28rMnTXj9p33St1F5b9wiU9XW18hz4lR4s78FTkNMS | ||
| 19 | +oEHdmSzjyrIAXRcJkGicdi8n0ckYwe7VuTpDVg6qQUomMZMA0ktV4DsCMd42UU9 | ||
| 20 | NW2dNm27ny+U3DI6U4TPWOv4+/a37le9eIpwvOx0q+xjvQ== | ||
| 21 | -----END CERTIFICATE----- | ||
diff --git a/keys/client.csr b/keys/client.csr new file mode 100644 index 0000000..51939ec --- /dev/null +++ b/keys/client.csr | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | -----BEGIN CERTIFICATE REQUEST----- | ||
| 2 | MIICnDCCAYQCAQAwVzELMAkGA1UEBhMCVVMxEjAQBgNVBAgMCVlvdXJTdGF0ZTER | ||
| 3 | MA8GA1UEBwwIWW91ckNpdHkxEDAOBgNVBAoMB1lvdXJPcmcxDzANBgNVBAMMBmNs | ||
| 4 | aWVudDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALxAnqNKQdocDXe3 | ||
| 5 | GxmiRnF3+HQhO45Z5MLBOwRNRPp/io90Rii9atKlTMdl/w7UO8+Qk2lEKUqfnvuQ | ||
| 6 | qoPcw+VOjqVsVh2IRT98HU45U5NAOun5EeQnFYZSMh+JHqnleAHt0Z74XjS9e9xh | ||
| 7 | pzETVWqTGQKQTwrA9EwbgcNfIbuXQMxaDdSarIf5eu3BCQ7j8IpAHzCOggZS9sqa | ||
| 8 | YLLujJuiDKPv3BFcn/ztZYmUhTHTgn2vtK/XSV3s7Wjh75PsW5OzR7gwh1xsAL9b | ||
| 9 | IhQ42cFq1WtN1UvFxYXijj2SQmwDIC35mfPmfvDs7Ueo+ZeLyYVCA4tWN3TR78SY | ||
| 10 | l8LDYccCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQAM146JcUP3Yz3mApBFPKE2 | ||
| 11 | 94EjzIA0GU9kU4+75D7oR1rpOQ4OVZW2myNKhetPEtwwMaB9grxwxlODR3rTw0jq | ||
| 12 | iLzIhJw5eOx8Hjdnv7BnpU4HAU2Z+OKN6IlbetbBfga0WNvfNn9efZWrSiavTE5C | ||
| 13 | tN/oUrqoJFWp2m/5XuwmxSFSoFF47yREP3wNN9+7ciGne77SHxDG1347lXTCsMYU | ||
| 14 | 4COcvpjHLDJkOq6DXdlXKpdCD/X16eE/n6UNTIkp3ops2Yj6KYrohsWMNQvzwKlB | ||
| 15 | TGMib7DwXADNC9aVHaGc3sW7Ngt5W6MibNaWGnLdtZu/o+xhuyBEjZoofDrV3o/X | ||
| 16 | -----END CERTIFICATE REQUEST----- | ||
diff --git a/keys/client.key b/keys/client.key new file mode 100644 index 0000000..6743847 --- /dev/null +++ b/keys/client.key | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | -----BEGIN PRIVATE KEY----- | ||
| 2 | MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC8QJ6jSkHaHA13 | ||
| 3 | txsZokZxd/h0ITuOWeTCwTsETUT6f4qPdEYovWrSpUzHZf8O1DvPkJNpRClKn577 | ||
| 4 | kKqD3MPlTo6lbFYdiEU/fB1OOVOTQDrp+RHkJxWGUjIfiR6p5XgB7dGe+F40vXvc | ||
| 5 | YacxE1VqkxkCkE8KwPRMG4HDXyG7l0DMWg3UmqyH+XrtwQkO4/CKQB8wjoIGUvbK | ||
| 6 | mmCy7oybogyj79wRXJ/87WWJlIUx04J9r7Sv10ld7O1o4e+T7FuTs0e4MIdcbAC/ | ||
| 7 | WyIUONnBatVrTdVLxcWF4o49kkJsAyAt+Znz5n7w7O1HqPmXi8mFQgOLVjd00e/E | ||
| 8 | mJfCw2HHAgMBAAECggEAQ+o+MSPbkQ/4zd1J0hwotMv23xKUNV15+ccTfxBPV94G | ||
| 9 | g42LuCvp63fGNNO3ykZIE7CRdfMowGrIxPIiijLtm38VWFm20a21adthiTSGUcPk | ||
| 10 | 3T9FtJ1jFxP1UEo8PUfzXSLKssLg3b8UfePfGQXkFXBfH/0m/vawy/pKfM0H0vB2 | ||
| 11 | e1nyc265mswgvMIWP7e/jkQIzJiG8loE5T8T7oG/DyXyVClXCLG00VtUUIXAoeYP | ||
| 12 | yiTOegnE6MF8G6+lwjCvVpNHdzLF/az3QzgKgoaPJLN11trbjldbhMeCIMmTwIAQ | ||
| 13 | NsQio6u5bdE8bqLf3zrhPKqE5n//6+MFgw6w1yu0HQKBgQDfsjjb7opq5JuSKzCp | ||
| 14 | CXi1Yzr2WQbbyuUJ2YND+KU/QNTB2aanxKtQ4BDiPLx4VFGCFc3qBYuRDgEv5Hrb | ||
| 15 | UQk+E1qE9RpnC/A73BehzAvZozrgjdleyE7WVv/t8alrnlyECxv+RdeY5y99hyED | ||
| 16 | L+oxK7s60CxR7Bqwy42MKYtvdQKBgQDXcBWk5LlyTrnKf5ZCfycJWIRgZXr0IcTC | ||
| 17 | afPZvK1irNjk4W2LcF3bH1mg0q0xfjlFby2+ygSHnB149KNDr/8aoRZ61G3zkf7o | ||
| 18 | MxuYCAWoKzII8lgutteOFgfK5OT7603OS+MkWiWEIqWY2so14qPFlMLPoMXQP5fI | ||
| 19 | SUy/aCoAywKBgQDVnCS7sAAxrvf4DpI6+LZxz74gPEdWX1tzmmfE4o0557jDHAoO | ||
| 20 | rrlBU5YL1B/NcAcdh6DIVl8+NvdfOnkvMST4SBbqW/vIZxgSsUtHz8eJHlw8znfC | ||
| 21 | ENlnyFBAccJs6B5EYS9sElmcwzcQUZduqbSjG7WApgWMfT/Hj7ktHQbveQKBgCgW | ||
| 22 | mEB1uzhVA+d1dF1tUbNAgGl7mLSC8B0JIDIdFNputXFprTusLhrPK5tseIPkK/4K | ||
| 23 | oSWGa+9cEnPmedbnkf2/ifJTQx52xUsp73GL1JmlaAsYJWaT6WpsGQkdLKrf7zt7 | ||
| 24 | DYo/KAn9dHkMBWKfiMAEXXfLP+PvYWwIj7pyRJafAoGAVK38BToOMnGJKiToLsnQ | ||
| 25 | xV6RMnF/lkoCWt+CBhQ6j4S4SZV/qBuJ75bWcXlJkj2JePsAHDkzTl40hR66dB03 | ||
| 26 | ShVyMafj+4CJlLv52snhoonWnZB62PyHAdFjahYpEPXxEqMhk8+cYhEo7wjbYzv+ | ||
| 27 | hwq9+NrsKo0Le+TSKfx0qpw= | ||
| 28 | -----END PRIVATE KEY----- | ||
diff --git a/keys/server.crt b/keys/server.crt new file mode 100644 index 0000000..e52661c --- /dev/null +++ b/keys/server.crt | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | -----BEGIN CERTIFICATE----- | ||
| 2 | MIIDgTCCAmmgAwIBAgIUXXUl7QS7QAIRT4GZywxsbC2vwLgwDQYJKoZIhvcNAQEL | ||
| 3 | BQAwVzELMAkGA1UEBhMCVVMxEjAQBgNVBAgMCVlvdXJTdGF0ZTERMA8GA1UEBwwI | ||
| 4 | WW91ckNpdHkxEDAOBgNVBAoMB1lvdXJPcmcxDzANBgNVBAMMBllvdXJDQTAeFw0y | ||
| 5 | NDExMTIwNzQ5MDZaFw0yNTExMTIwNzQ5MDZaMFoxCzAJBgNVBAYTAlVTMRIwEAYD | ||
| 6 | VQQIDAlZb3VyU3RhdGUxETAPBgNVBAcMCFlvdXJDaXR5MRAwDgYDVQQKDAdZb3Vy | ||
| 7 | T3JnMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw | ||
| 8 | ggEKAoIBAQDHEVL5OtqgU5zy1cS8Ppbmb5x18flXIDHkViDUmcvckhtedr+NoZ7X | ||
| 9 | G04PzU8s0oA9nz/DsPGRDE1QkLIKt3UX2h4UjfSeoZHkTf+nNwLgmMLr6eJ2iq/M | ||
| 10 | +4l9A3gq8nMXVAgFeHwAiT7KK/S/NMl7mQE9K2i6xhyVhtKkNiHUM99RwIYorMlj | ||
| 11 | /oQ/XAgJRUheqidOMxpGi2REAfLUkVjU1HhD3+1FOfo+VGc4Tk7W93QOysrgcDcc | ||
| 12 | xuJSSLevlwn9N1SdDGYzHNPyAwRJwp2VtmBt7ef9TCJirp1I/r3bn9rG5KiIkH7c | ||
| 13 | IezNVD7S89E8+/DAUFG8qynWcjCh9Hv3AgMBAAGjQjBAMB0GA1UdDgQWBBRB5rzo | ||
| 14 | M3A4qowzysRedTT/FPaaXzAfBgNVHSMEGDAWgBTbW+YSpuO7G1gTQqIyqUhPvKl7 | ||
| 15 | CDANBgkqhkiG9w0BAQsFAAOCAQEAotcKajxy8Q4v5KZLx0Nk1kq+s885ZLwEWXIU | ||
| 16 | P4YDbddTCWKkhrJPpZmgUVbX3ghaihbkoUBIGyRmlSS8TAhbLmkZnEeGYp9xYCKY | ||
| 17 | BfBuYvaBqoy2/XoaW6dD5sQhOEG0tKySWiZwwy8QUGaaeGS+XKmN7OVQRpynI3d/ | ||
| 18 | AvnYxP7jZobzKWzMBYPMXmAuGj5U+RxyZYA+92oNTIJ849E8GXzY9pN2jiBN723E | ||
| 19 | Ng3L+93DhhGG0J4HtIwM9K7J39CErq9kOmdPvWc0FTV2nhIMVX6tLxxBrMpDrfTP | ||
| 20 | cjVGe3F3j9/7gWzTeTbWmX9ctl72VHNK5KQgNw9KJ6y25IzuEA== | ||
| 21 | -----END CERTIFICATE----- | ||
diff --git a/keys/server.csr b/keys/server.csr new file mode 100644 index 0000000..f360791 --- /dev/null +++ b/keys/server.csr | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | -----BEGIN CERTIFICATE REQUEST----- | ||
| 2 | MIICnzCCAYcCAQAwWjELMAkGA1UEBhMCVVMxEjAQBgNVBAgMCVlvdXJTdGF0ZTER | ||
| 3 | MA8GA1UEBwwIWW91ckNpdHkxEDAOBgNVBAoMB1lvdXJPcmcxEjAQBgNVBAMMCWxv | ||
| 4 | Y2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMcRUvk62qBT | ||
| 5 | nPLVxLw+luZvnHXx+VcgMeRWINSZy9ySG152v42hntcbTg/NTyzSgD2fP8Ow8ZEM | ||
| 6 | TVCQsgq3dRfaHhSN9J6hkeRN/6c3AuCYwuvp4naKr8z7iX0DeCrycxdUCAV4fACJ | ||
| 7 | Psor9L80yXuZAT0raLrGHJWG0qQ2IdQz31HAhiisyWP+hD9cCAlFSF6qJ04zGkaL | ||
| 8 | ZEQB8tSRWNTUeEPf7UU5+j5UZzhOTtb3dA7KyuBwNxzG4lJIt6+XCf03VJ0MZjMc | ||
| 9 | 0/IDBEnCnZW2YG3t5/1MImKunUj+vduf2sbkqIiQftwh7M1UPtLz0Tz78MBQUbyr | ||
| 10 | KdZyMKH0e/cCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQCHq5i2D3EvMXH1dEei | ||
| 11 | Lin++lTSj9GKY3cD6ig42C4pHepkHM3dGDmGP0MI7eh3BDTXYt2xvyVW25Q/nj4V | ||
| 12 | HQoXcY8WlTvdXYc8ZzmyJIMSOWQCIGP9lPIairEJiigi3Wbg5MZr1k/wDV0bDgTY | ||
| 13 | iaA+OYedAkVUzNYdcUVSG70frMj542C6dXR/oe8OOb7FjD2hkrb+L1yY2hkoMGc/ | ||
| 14 | MdCy5vX7RA4xlzku1PM10iQTyBpVwAhcuoe2BF5xSTEBkawVLNiYX1ypfGaQVFjo | ||
| 15 | QCducJcNNIfZXKHTQVsDhO34hVQSpD4EM3eDx9NIeH4qjXBr9o55/LopfXKi9zmN | ||
| 16 | R9fb | ||
| 17 | -----END CERTIFICATE REQUEST----- | ||
diff --git a/keys/server.key b/keys/server.key new file mode 100644 index 0000000..c4a0abf --- /dev/null +++ b/keys/server.key | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | -----BEGIN PRIVATE KEY----- | ||
| 2 | MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDHEVL5OtqgU5zy | ||
| 3 | 1cS8Ppbmb5x18flXIDHkViDUmcvckhtedr+NoZ7XG04PzU8s0oA9nz/DsPGRDE1Q | ||
| 4 | kLIKt3UX2h4UjfSeoZHkTf+nNwLgmMLr6eJ2iq/M+4l9A3gq8nMXVAgFeHwAiT7K | ||
| 5 | K/S/NMl7mQE9K2i6xhyVhtKkNiHUM99RwIYorMlj/oQ/XAgJRUheqidOMxpGi2RE | ||
| 6 | AfLUkVjU1HhD3+1FOfo+VGc4Tk7W93QOysrgcDccxuJSSLevlwn9N1SdDGYzHNPy | ||
| 7 | AwRJwp2VtmBt7ef9TCJirp1I/r3bn9rG5KiIkH7cIezNVD7S89E8+/DAUFG8qynW | ||
| 8 | cjCh9Hv3AgMBAAECggEAHKjAAdVOdr44PnZhNwVpyIOGtSz2Npa80sCa7xC0mqzx | ||
| 9 | l3AlfsNRxhU5GqmhEvURSmMxamqAigneiFFJ7foLN7kKve8mqb8ywk7VFg1OSD3Q | ||
| 10 | njyTV86lUFphqRJaoWWQr+nvUl5ODUO1EE/eEg22+NOGgU3NFkqsVdNNuHTPT6iQ | ||
| 11 | 0dULUDVRzlOG/eqvb73K5gZ9Mf3Q6+GB4QHDzMt+LPpxcBCw6tmas5DlstsUwC0s | ||
| 12 | kOfWTRyezYPAmJb0jhAkzxmaeMlFPfzOygxA+F2GRv2aZlwLBAyQH3iFktqUYYnI | ||
| 13 | EUqeK5VXxwq1hzBpSOJC2A/QbpRbhF/C/zL6UuOZhQKBgQD50xaVU4+RAqlEireI | ||
| 14 | 1Jq1Nmd2bH2K/XYN2tvSSRuz2CgF1nhJoKVPuzkSy669WV/B84aARnu1SbNr99Tb | ||
| 15 | MT/DSlHP5RrdL3Zi4mlUSzpfX8269U42RcynzsOv/mV4+qCMa1tp0NOuErmcVU1Y | ||
| 16 | JsXxinRsBoI7BvrEXcf004dAlQKBgQDL/Qq1otDcHwDEgLljbtwAgscXe+BAJxHz | ||
| 17 | 1n05KVFXibgI7BnrJkqwFCeU/QUEvPQe40JAOFWZRJQ3fdT/Eszc7fiSk8PFWZrM | ||
| 18 | fhG9Sl4m7QneXVbNL5yPa1B/EaARhLFImn38bEbwAX/1XE29hKC0wqs/ZolWNi+J | ||
| 19 | 1aPLJYmrWwKBgDNY3YVnnVRytZOu5zYqbHnearl+ZvdQTRlf6Fp6SEVYojFA+Yw4 | ||
| 20 | hoGyu3JPhuTIH9RfVz+6PObv9P61+3vpzW84MUSHlFPt02lTm86Ff8PmjwRkMuUY | ||
| 21 | x42eA76CjRymdqUl064WC8v1cUzeg30gywJwMKmbVN0I/DWsCNMbPutZAoGBALdy | ||
| 22 | 14DF7cMn9o7BnPe5KQ0kj1ulQeUvvctmJ7OSXt60sdcETcLV6vEzDu3EJhE+xORK | ||
| 23 | SLhscT6nGAxXk4fZJnfBY3yeer8ueDJTZiyvhsDHB8r8ciWRHeE1B21fMm7OwIik | ||
| 24 | t4yc66bIEoVb/2XisowdTdh0pCnuDQ6OHQGCvq5lAoGBAJxi8gJ8roDgj3wQVN5R | ||
| 25 | gwTCXae+aYAsVl7+FX4YTjIzryNDvCdNH/9+0fO6pFWQRcKbcT+zspb5DVkH++vT | ||
| 26 | rNEGwzoJ+Z0Q/6CtqQbYOAG2eWYqhJ1WBV2n/yjLSk62n8iEZ3kIM7QETpd4Ti5f | ||
| 27 | 1uHlMIURqgpCfg1/PUmSbaQO | ||
| 28 | -----END PRIVATE KEY----- | ||
diff --git a/nginx.conf b/nginx.conf deleted file mode 100644 index fc11627..0000000 --- a/nginx.conf +++ /dev/null | |||
| @@ -1,63 +0,0 @@ | |||
| 1 | |||
| 2 | user nginx; | ||
| 3 | worker_processes auto; | ||
| 4 | |||
| 5 | error_log /var/log/nginx/error.log notice; | ||
| 6 | pid /var/run/nginx.pid; | ||
| 7 | |||
| 8 | |||
| 9 | events { | ||
| 10 | worker_connections 1024; | ||
| 11 | } | ||
| 12 | |||
| 13 | |||
| 14 | http { | ||
| 15 | include /etc/nginx/mime.types; | ||
| 16 | default_type application/octet-stream; | ||
| 17 | |||
| 18 | |||
| 19 | log_format main '$remote_addr - $remote_user [$time_local] "$request" ' | ||
| 20 | '$status $body_bytes_sent "$http_referer" ' | ||
| 21 | '"$http_user_agent" "$http_x_forwarded_for" ' | ||
| 22 | 'ssl_protocol:$ssl_protocol ssl_cipher:$ssl_cipher ' | ||
| 23 | 'ssl_client_verify:$ssl_client_verify ' | ||
| 24 | 'ssl_client_s_dn:$ssl_client_s_dn'; | ||
| 25 | access_log /var/log/nginx/access.log main; | ||
| 26 | |||
| 27 | sendfile on; | ||
| 28 | #tcp_nopush on; | ||
| 29 | |||
| 30 | keepalive_timeout 65; | ||
| 31 | |||
| 32 | #gzip on; | ||
| 33 | |||
| 34 | # include /etc/nginx/conf.d/*.conf; | ||
| 35 | |||
| 36 | server { | ||
| 37 | location / { | ||
| 38 | return 301 https://$host$request_uri; | ||
| 39 | #root /data/www; | ||
| 40 | #autoindex on; | ||
| 41 | #autoindex_exact_size off; | ||
| 42 | } | ||
| 43 | } | ||
| 44 | server { | ||
| 45 | listen 443 ssl; | ||
| 46 | server_name localhost; | ||
| 47 | |||
| 48 | ssl_certificate /home/x/auths1/server.crt; | ||
| 49 | ssl_certificate_key /home/x/auths1/server.key; | ||
| 50 | ssl_client_certificate /home/x/auths1/ca.pem; | ||
| 51 | ssl_verify_client on; | ||
| 52 | |||
| 53 | location / { | ||
| 54 | proxy_pass http://localhost:5000; | ||
| 55 | proxy_set_header Host $host; | ||
| 56 | proxy_set_header X-Real-IP $remote_addr; | ||
| 57 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
| 58 | proxy_set_header X-Forwarded-Proto $scheme; | ||
| 59 | |||
| 60 | } | ||
| 61 | } | ||
| 62 | |||
| 63 | } | ||
| @@ -0,0 +1,71 @@ | |||
| 1 | import time | ||
| 2 | from typing import Dict, List | ||
| 3 | import random | ||
| 4 | import string | ||
| 5 | |||
| 6 | class customstore: | ||
| 7 | def __init__(self, ttl=300, maxsize=200): | ||
| 8 | self.store: Dict[str, List] = {} # key -> [expiry_time, verified_status] | ||
| 9 | self.ttl = ttl | ||
| 10 | #self.maxsize = maxsize, now dont need this | ||
| 11 | |||
| 12 | def create(self): | ||
| 13 | self.clean() | ||
| 14 | keylength = 4 | ||
| 15 | key_added = False | ||
| 16 | while not key_added: | ||
| 17 | current_time = int(time.time()) | ||
| 18 | key = ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(keylength)) | ||
| 19 | if key not in self.store: | ||
| 20 | self.store[key] = [current_time + self.ttl, False] | ||
| 21 | key_added = True | ||
| 22 | return key | ||
| 23 | |||
| 24 | def authenticate(self, key): | ||
| 25 | current_time = int(time.time()) | ||
| 26 | if key in self.store and current_time <= self.store[key][0]: | ||
| 27 | self.store[key][1] = True | ||
| 28 | return True | ||
| 29 | else: | ||
| 30 | return False | ||
| 31 | |||
| 32 | def check(self, key): | ||
| 33 | current_time = int(time.time()) | ||
| 34 | if key in self.store and current_time <= self.store[key][0] and self.store[key][1] == True: | ||
| 35 | return True | ||
| 36 | else: | ||
| 37 | return False | ||
| 38 | |||
| 39 | def clean(self): | ||
| 40 | current_time = int(time.time()) | ||
| 41 | expired_keys = [k for k, [expiry_time, _] in self.store.items() if current_time > expiry_time] | ||
| 42 | for key in expired_keys: | ||
| 43 | self.store.pop(key, None) | ||
| 44 | return | ||
| 45 | |||
| 46 | if __name__ == "__main__": | ||
| 47 | s1 = customstore(ttl=7) | ||
| 48 | |||
| 49 | # Create and verify first key | ||
| 50 | k = s1.create() | ||
| 51 | print("Store state:", s1.store) | ||
| 52 | print("Created key:", k) | ||
| 53 | print("First verification:", "yeppy" if s1.authenticate(k) else "nopey") | ||
| 54 | print("Second verification:", "yeppy" if s1.check(k) else "nopey") | ||
| 55 | # Wait and try again | ||
| 56 | time.sleep(5) | ||
| 57 | k2 = s1.create() | ||
| 58 | print("\nStore state after 5 seconds:", s1.store) | ||
| 59 | print("First key:", k) | ||
| 60 | print("First key verification:", "yeppy" if s1.check(k) else "nopey") | ||
| 61 | |||
| 62 | # Wait and try again | ||
| 63 | time.sleep(5) | ||
| 64 | print("\nStore state after 5 seconds:", s1.store) | ||
| 65 | print("First key:", k) | ||
| 66 | print("First key verification:", "yeppy" if s1.check(k) else "nopey") | ||
| 67 | k = s1.create() | ||
| 68 | print("Store state:", s1.store) | ||
| 69 | print("Created key:", k) | ||
| 70 | print("First verification:", "yeppy" if s1.authenticate(k) else "nopey") | ||
| 71 | print("Second verification:", "yeppy" if s1.check(k) else "nopey") | ||
diff --git a/untested-docs/gunicorn1.service b/untested-docs/gunicorn1.service new file mode 100644 index 0000000..f0b1b60 --- /dev/null +++ b/untested-docs/gunicorn1.service | |||
| @@ -0,0 +1,71 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html lang='en'> | ||
| 3 | <head> | ||
| 4 | <title>gunicorn1.service - authserver - 2fa server using pkcs11 on nitrokey hsm2 and yubikey | ||
| 5 | </title> | ||
| 6 | <meta name='generator' content='cgit v1.2.3'/> | ||
| 7 | <meta name='robots' content='index, nofollow'/> | ||
| 8 | <link rel='stylesheet' type='text/css' href='/assets/cgit.css'/> | ||
| 9 | <link rel='shortcut icon' href='/favicon.ico'/> | ||
| 10 | <link rel='alternate' title='Atom feed' href='https://git.0nom.ch/authserver/atom/gunicorn1.service?h=main' type='application/atom+xml'/> | ||
| 11 | <link rel='vcs-git' href='https://git.0nom.ch/authserver' title='authserver Git repository'/> | ||
| 12 | </head> | ||
| 13 | <body> | ||
| 14 | <div id='cgit'><table id='header'> | ||
| 15 | <tr> | ||
| 16 | <td class='logo' rowspan='2'><a href='/'><img src='/assets/cgit.png' alt='cgit logo'/></a></td> | ||
| 17 | <td class='main'><a href='/'>index</a> : <a title='authserver' href='/authserver/'>authserver</a></td><td class='form'><form method='get'> | ||
| 18 | <select name='h' onchange='this.form.submit();'> | ||
| 19 | <option value='main' selected='selected'>main</option> | ||
| 20 | </select> <input type='submit' value='switch'/></form></td></tr> | ||
| 21 | <tr><td class='sub'>2fa server using pkcs11 on nitrokey hsm2 and yubikey | ||
| 22 | </td><td class='sub right'>root</td></tr></table> | ||
| 23 | <table class='tabs'><tr><td> | ||
| 24 | <a href='/authserver/'>summary</a><a href='/authserver/refs/'>refs</a><a href='/authserver/log/gunicorn1.service'>log</a><a class='active' href='/authserver/tree/gunicorn1.service'>tree</a><a href='/authserver/commit/gunicorn1.service'>commit</a><a href='/authserver/diff/gunicorn1.service'>diff</a></td><td class='form'><form class='right' method='get' action='/authserver/log/gunicorn1.service'> | ||
| 25 | <select name='qt'> | ||
| 26 | <option value='grep'>log msg</option> | ||
| 27 | <option value='author'>author</option> | ||
| 28 | <option value='committer'>committer</option> | ||
| 29 | <option value='range'>range</option> | ||
| 30 | </select> | ||
| 31 | <input class='txt' type='search' size='10' name='q' value=''/> | ||
| 32 | <input type='submit' value='search'/> | ||
| 33 | </form> | ||
| 34 | </td></tr></table> | ||
| 35 | <div class='path'>path: <a href='/authserver/tree/'>root</a>/<a href='/authserver/tree/gunicorn1.service'>gunicorn1.service</a></div><div class='content'>blob: 425c45395070686ed7654b9ccb9b677e5c1eb60d (<a href='/authserver/plain/gunicorn1.service'>plain</a>) | ||
| 36 | <table summary='blob content' class='blob'> | ||
| 37 | <tr><td class='linenumbers'><pre><a id='n1' href='#n1'>1</a> | ||
| 38 | <a id='n2' href='#n2'>2</a> | ||
| 39 | <a id='n3' href='#n3'>3</a> | ||
| 40 | <a id='n4' href='#n4'>4</a> | ||
| 41 | <a id='n5' href='#n5'>5</a> | ||
| 42 | <a id='n6' href='#n6'>6</a> | ||
| 43 | <a id='n7' href='#n7'>7</a> | ||
| 44 | <a id='n8' href='#n8'>8</a> | ||
| 45 | <a id='n9' href='#n9'>9</a> | ||
| 46 | <a id='n10' href='#n10'>10</a> | ||
| 47 | <a id='n11' href='#n11'>11</a> | ||
| 48 | <a id='n12' href='#n12'>12</a> | ||
| 49 | <a id='n13' href='#n13'>13</a> | ||
| 50 | <a id='n14' href='#n14'>14</a> | ||
| 51 | </pre></td> | ||
| 52 | <td class='lines'><pre><code> | ||
| 53 | [Unit] | ||
| 54 | Description=gunicorn1 | ||
| 55 | After=network.target | ||
| 56 | |||
| 57 | [Service] | ||
| 58 | User=www-data | ||
| 59 | Group=www-data | ||
| 60 | WorkingDirectory=/var/www | ||
| 61 | ExecStart=/usr/local/bin/gunicorn --workers 3 --bind 0.0.0.0:5000 app1:app | ||
| 62 | |||
| 63 | [Install] | ||
| 64 | WantedBy=multi-user.target | ||
| 65 | |||
| 66 | </code></pre></td></tr></table> | ||
| 67 | </div> <!-- class=content --> | ||
| 68 | <div class='footer'>generated by <a href='https://git.zx2c4.com/cgit/about/'>cgit v1.2.3</a> (<a href='https://git-scm.com/'>git 2.25.1</a>) at 2024-11-12 08:12:47 +0000</div> | ||
| 69 | </div> <!-- id=cgit --> | ||
| 70 | </body> | ||
| 71 | </html> | ||
