diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/ssl/examples/certs/etc/client/cacerts.pem | 34 | ||||
| -rw-r--r-- | lib/ssl/examples/certs/etc/client/cert.pem | 17 | ||||
| -rw-r--r-- | lib/ssl/examples/certs/etc/client/key.pem | 16 | ||||
| -rw-r--r-- | lib/ssl/examples/certs/etc/erlangCA/cert.pem | 17 | ||||
| -rw-r--r-- | lib/ssl/examples/certs/etc/otpCA/cert.pem | 17 | ||||
| -rw-r--r-- | lib/ssl/examples/certs/etc/server/cacerts.pem | 34 | ||||
| -rw-r--r-- | lib/ssl/examples/certs/etc/server/cert.pem | 17 | ||||
| -rw-r--r-- | lib/ssl/examples/certs/etc/server/key.pem | 16 | ||||
| -rw-r--r-- | lib/ssl/examples/certs/src/make_certs.erl | 297 | 
9 files changed, 210 insertions, 255 deletions
diff --git a/lib/ssl/examples/certs/etc/client/cacerts.pem b/lib/ssl/examples/certs/etc/client/cacerts.pem new file mode 100644 index 0000000000..cb19d3d41e --- /dev/null +++ b/lib/ssl/examples/certs/etc/client/cacerts.pem @@ -0,0 +1,34 @@ +-----BEGIN CERTIFICATE----- +MIICizCCAfSgAwIBAgIFdMMs9fEwDQYJKoZIhvcNAQEFBQAwfTERMA8GA1UEAxMI +ZXJsYW5nQ0ExIDAeBgkqhkiG9w0BCQEWEXRlc3RlckBlcmxhbmcub3JnMRIwEAYD +VQQHEwlTdG9ja2hvbG0xCzAJBgNVBAYTAlNFMQ8wDQYDVQQKEwZlcmxhbmcxFDAS +BgNVBAsTC3Rlc3RpbmcgZGVwMCIYDzIwMTAwOTAxMDAwMDAwWhgPMjAyNTA4Mjgw +MDAwMDBaMH0xETAPBgNVBAMTCGVybGFuZ0NBMSAwHgYJKoZIhvcNAQkBFhF0ZXN0 +ZXJAZXJsYW5nLm9yZzESMBAGA1UEBxMJU3RvY2tob2xtMQswCQYDVQQGEwJTRTEP +MA0GA1UEChMGZXJsYW5nMRQwEgYDVQQLEwt0ZXN0aW5nIGRlcDCBnzANBgkqhkiG +9w0BAQEFAAOBjQAwgYkCgYEAgmHw2xApZqdzZOOPTzwHr1hRYd1OqbLOsXbAq6kJ +Kuu+qe5jAlMF3vnUhiHomuZeNZVJe3SP+JfBt3BHMjm2CLChCuNgfctKURMlEc/L +xo8fO1Jk9MD5mbG2Utx3m3gM6Liwt9fHVABlCTyB6/jXrK1tYpEG5CrwUXyy8Htl +jHECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAl +0tMEXWPgzXTpDuNmuKh6aGq9CuExUuEXXQQWPThzEuluA3aHFmObziQlMY1+KeO1 +AL0kpx0Yhvju/rfAJ+OF6MMni6hJoKlYTVml+fCY89A3nmY1rJHJavjHp0OIPGxh +4Sr+EcjROkqe8jE0DmbwmM6lzpwSJscxte+V6HvGRw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICiDCCAfGgAwIBAgIFSHyFNTEwDQYJKoZIhvcNAQEFBQAwfTERMA8GA1UEAxMI +ZXJsYW5nQ0ExIDAeBgkqhkiG9w0BCQEWEXRlc3RlckBlcmxhbmcub3JnMRIwEAYD +VQQHEwlTdG9ja2hvbG0xCzAJBgNVBAYTAlNFMQ8wDQYDVQQKEwZlcmxhbmcxFDAS +BgNVBAsTC3Rlc3RpbmcgZGVwMCIYDzIwMTAwOTAxMDAwMDAwWhgPMjAyNTA4Mjgw +MDAwMDBaMHoxDjAMBgNVBAMTBW90cENBMSAwHgYJKoZIhvcNAQkBFhF0ZXN0ZXJA +ZXJsYW5nLm9yZzESMBAGA1UEBxMJU3RvY2tob2xtMQswCQYDVQQGEwJTRTEPMA0G +A1UEChMGZXJsYW5nMRQwEgYDVQQLEwt0ZXN0aW5nIGRlcDCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEAjEt9iy365+mTialKDKb3l2QPg71yavJA1ZC6aGC14X7x +KCm1FhUYsVKOlWjmC1VYJiCS01gvKqMXiogreHJGM93E+URlKkOm9kmOWQwLfFb8 +JLzafPi3/8TUdjl8UuIDHyPsoQiM2ZBDUVWezfl+CBsTYFO3U4Lqf9OKbCxTF78C +AwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAv6vHw +wK3MvxzlhDJIx7rUasOYJDZJyOt71KdOKeA7+ocbvDIblmV7sTbe3oQNqbSATZ6H +RUqHZdPhKIZ9wjEBSKdBTL8rc0TvbztMvd+i0rkTCL/bspQYchA2zCcjgkWqpaN4 +OhOjQR1+9/ntmaU/r5Ca7KmrXEf5XSQIGLSMag== +-----END CERTIFICATE----- + diff --git a/lib/ssl/examples/certs/etc/client/cert.pem b/lib/ssl/examples/certs/etc/client/cert.pem new file mode 100644 index 0000000000..a2f53aaf82 --- /dev/null +++ b/lib/ssl/examples/certs/etc/client/cert.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIIChzCCAfCgAwIBAgIGAIsapa8BMA0GCSqGSIb3DQEBBQUAMHoxDjAMBgNVBAMT +BW90cENBMSAwHgYJKoZIhvcNAQkBFhF0ZXN0ZXJAZXJsYW5nLm9yZzESMBAGA1UE +BxMJU3RvY2tob2xtMQswCQYDVQQGEwJTRTEPMA0GA1UEChMGZXJsYW5nMRQwEgYD +VQQLEwt0ZXN0aW5nIGRlcDAiGA8yMDEwMDkwMTAwMDAwMFoYDzIwMjUwODI4MDAw +MDAwWjB7MQ8wDQYDVQQDEwZjbGllbnQxIDAeBgkqhkiG9w0BCQEWEXRlc3RlckBl +cmxhbmcub3JnMRIwEAYDVQQHEwlTdG9ja2hvbG0xCzAJBgNVBAYTAlNFMQ8wDQYD +VQQKEwZlcmxhbmcxFDASBgNVBAsTC3Rlc3RpbmcgZGVwMIGfMA0GCSqGSIb3DQEB +AQUAA4GNADCBiQKBgQCTFBPkOO98fDY3j6MIxIGKp+rampfIay50Lx4+EnCnRSSV +wC+n0VVmP7V5SGFJpuXJzN0hvqPUWOOjiMTNlNRaGy0pqu2oMXWAPLOxHWL1wT53 +h2Zr3FUNU/N0Rvnkttse1KZJ9uYCLKUiuXXsv2rR62nH3OhRIiBHSAcSv0NRWwID +AQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAG8t6f1A +PF7xayGxtUpG2r6W5ETylC3ZIKPS2kfJk9aYi7AZNTp7/xTU6SgqvFBN8aBPzxCD +4jHrSNC8DSb4X1x9uimarb6qdZDHEdij+DRAd2eygJHZxEf7+8B4Fx34thQeU9hZ +S1Izke5AlsyFMkvB7h0anE4k9BfuU70vl6v5 +-----END CERTIFICATE----- + diff --git a/lib/ssl/examples/certs/etc/client/key.pem b/lib/ssl/examples/certs/etc/client/key.pem new file mode 100644 index 0000000000..4d55b08f4c --- /dev/null +++ b/lib/ssl/examples/certs/etc/client/key.pem @@ -0,0 +1,16 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQCTFBPkOO98fDY3j6MIxIGKp+rampfIay50Lx4+EnCnRSSVwC+n +0VVmP7V5SGFJpuXJzN0hvqPUWOOjiMTNlNRaGy0pqu2oMXWAPLOxHWL1wT53h2Zr +3FUNU/N0Rvnkttse1KZJ9uYCLKUiuXXsv2rR62nH3OhRIiBHSAcSv0NRWwIDAQAB +AoGACdIVYe/LTeydUihtInC8lZ2QuPgJmoBNocRjqJFipEihoL4scHAx25n1bBvB +I0HZphffzBkGp28oBAtl2LRPWXqu527unc/RWRfLMqSK1xNSq1DxD1a30zkrZPna +QiV65vEJuNSJTtlDy/Zqc/BVZXCpxWlzYQedZgkmf0Qse8ECQQCmaz02Yur8zC9f +eSQKU5OSzGw3bSIumEzziCfHdTheK6MEoccf5TCAyLXhZwA7QlKja4tFXfeyVxws +/LlnUJN9AkEA4j+xnOeYUyGKXL5i+BAbnqpI4MzPiq+IoCYkaRlD/wAws24r5HNI +ZQmEHWqD/NNzOf/A2XuyLtMiTGJPW/DftwJBAKKpJP6Ytuh6xz8BUCnLwO12Y7vV +LtjuQiCzD3aUa5EYA9HOMqxJPxxRkf0LyR0i2VUkE8+sZiPpov+R0cJa7p0CQQCj +40GUiArGRSiF7/+e84QeVfl+pb29F1QftiFv5DZmFEwy3Z572KpbTh5edJbxYHY6 +UDHxGHJFCvnwXNJhpkVXAkBJqfEfiMJ3Q/E5Gpf3sQizacouW92iiN8ojlF1oB80 +t34RysJH7SgI3gdMhTribCo2UUaV0StjR6yodPN+TB2J +-----END RSA PRIVATE KEY----- + diff --git a/lib/ssl/examples/certs/etc/erlangCA/cert.pem b/lib/ssl/examples/certs/etc/erlangCA/cert.pem new file mode 100644 index 0000000000..c4386494dc --- /dev/null +++ b/lib/ssl/examples/certs/etc/erlangCA/cert.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICizCCAfSgAwIBAgIFdMMs9fEwDQYJKoZIhvcNAQEFBQAwfTERMA8GA1UEAxMI +ZXJsYW5nQ0ExIDAeBgkqhkiG9w0BCQEWEXRlc3RlckBlcmxhbmcub3JnMRIwEAYD +VQQHEwlTdG9ja2hvbG0xCzAJBgNVBAYTAlNFMQ8wDQYDVQQKEwZlcmxhbmcxFDAS +BgNVBAsTC3Rlc3RpbmcgZGVwMCIYDzIwMTAwOTAxMDAwMDAwWhgPMjAyNTA4Mjgw +MDAwMDBaMH0xETAPBgNVBAMTCGVybGFuZ0NBMSAwHgYJKoZIhvcNAQkBFhF0ZXN0 +ZXJAZXJsYW5nLm9yZzESMBAGA1UEBxMJU3RvY2tob2xtMQswCQYDVQQGEwJTRTEP +MA0GA1UEChMGZXJsYW5nMRQwEgYDVQQLEwt0ZXN0aW5nIGRlcDCBnzANBgkqhkiG +9w0BAQEFAAOBjQAwgYkCgYEAgmHw2xApZqdzZOOPTzwHr1hRYd1OqbLOsXbAq6kJ +Kuu+qe5jAlMF3vnUhiHomuZeNZVJe3SP+JfBt3BHMjm2CLChCuNgfctKURMlEc/L +xo8fO1Jk9MD5mbG2Utx3m3gM6Liwt9fHVABlCTyB6/jXrK1tYpEG5CrwUXyy8Htl +jHECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAl +0tMEXWPgzXTpDuNmuKh6aGq9CuExUuEXXQQWPThzEuluA3aHFmObziQlMY1+KeO1 +AL0kpx0Yhvju/rfAJ+OF6MMni6hJoKlYTVml+fCY89A3nmY1rJHJavjHp0OIPGxh +4Sr+EcjROkqe8jE0DmbwmM6lzpwSJscxte+V6HvGRw== +-----END CERTIFICATE----- + diff --git a/lib/ssl/examples/certs/etc/otpCA/cert.pem b/lib/ssl/examples/certs/etc/otpCA/cert.pem new file mode 100644 index 0000000000..8610621695 --- /dev/null +++ b/lib/ssl/examples/certs/etc/otpCA/cert.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICiDCCAfGgAwIBAgIFSHyFNTEwDQYJKoZIhvcNAQEFBQAwfTERMA8GA1UEAxMI +ZXJsYW5nQ0ExIDAeBgkqhkiG9w0BCQEWEXRlc3RlckBlcmxhbmcub3JnMRIwEAYD +VQQHEwlTdG9ja2hvbG0xCzAJBgNVBAYTAlNFMQ8wDQYDVQQKEwZlcmxhbmcxFDAS +BgNVBAsTC3Rlc3RpbmcgZGVwMCIYDzIwMTAwOTAxMDAwMDAwWhgPMjAyNTA4Mjgw +MDAwMDBaMHoxDjAMBgNVBAMTBW90cENBMSAwHgYJKoZIhvcNAQkBFhF0ZXN0ZXJA +ZXJsYW5nLm9yZzESMBAGA1UEBxMJU3RvY2tob2xtMQswCQYDVQQGEwJTRTEPMA0G +A1UEChMGZXJsYW5nMRQwEgYDVQQLEwt0ZXN0aW5nIGRlcDCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEAjEt9iy365+mTialKDKb3l2QPg71yavJA1ZC6aGC14X7x +KCm1FhUYsVKOlWjmC1VYJiCS01gvKqMXiogreHJGM93E+URlKkOm9kmOWQwLfFb8 +JLzafPi3/8TUdjl8UuIDHyPsoQiM2ZBDUVWezfl+CBsTYFO3U4Lqf9OKbCxTF78C +AwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAv6vHw +wK3MvxzlhDJIx7rUasOYJDZJyOt71KdOKeA7+ocbvDIblmV7sTbe3oQNqbSATZ6H +RUqHZdPhKIZ9wjEBSKdBTL8rc0TvbztMvd+i0rkTCL/bspQYchA2zCcjgkWqpaN4 +OhOjQR1+9/ntmaU/r5Ca7KmrXEf5XSQIGLSMag== +-----END CERTIFICATE----- + diff --git a/lib/ssl/examples/certs/etc/server/cacerts.pem b/lib/ssl/examples/certs/etc/server/cacerts.pem new file mode 100644 index 0000000000..cb19d3d41e --- /dev/null +++ b/lib/ssl/examples/certs/etc/server/cacerts.pem @@ -0,0 +1,34 @@ +-----BEGIN CERTIFICATE----- +MIICizCCAfSgAwIBAgIFdMMs9fEwDQYJKoZIhvcNAQEFBQAwfTERMA8GA1UEAxMI +ZXJsYW5nQ0ExIDAeBgkqhkiG9w0BCQEWEXRlc3RlckBlcmxhbmcub3JnMRIwEAYD +VQQHEwlTdG9ja2hvbG0xCzAJBgNVBAYTAlNFMQ8wDQYDVQQKEwZlcmxhbmcxFDAS +BgNVBAsTC3Rlc3RpbmcgZGVwMCIYDzIwMTAwOTAxMDAwMDAwWhgPMjAyNTA4Mjgw +MDAwMDBaMH0xETAPBgNVBAMTCGVybGFuZ0NBMSAwHgYJKoZIhvcNAQkBFhF0ZXN0 +ZXJAZXJsYW5nLm9yZzESMBAGA1UEBxMJU3RvY2tob2xtMQswCQYDVQQGEwJTRTEP +MA0GA1UEChMGZXJsYW5nMRQwEgYDVQQLEwt0ZXN0aW5nIGRlcDCBnzANBgkqhkiG +9w0BAQEFAAOBjQAwgYkCgYEAgmHw2xApZqdzZOOPTzwHr1hRYd1OqbLOsXbAq6kJ +Kuu+qe5jAlMF3vnUhiHomuZeNZVJe3SP+JfBt3BHMjm2CLChCuNgfctKURMlEc/L +xo8fO1Jk9MD5mbG2Utx3m3gM6Liwt9fHVABlCTyB6/jXrK1tYpEG5CrwUXyy8Htl +jHECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAl +0tMEXWPgzXTpDuNmuKh6aGq9CuExUuEXXQQWPThzEuluA3aHFmObziQlMY1+KeO1 +AL0kpx0Yhvju/rfAJ+OF6MMni6hJoKlYTVml+fCY89A3nmY1rJHJavjHp0OIPGxh +4Sr+EcjROkqe8jE0DmbwmM6lzpwSJscxte+V6HvGRw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICiDCCAfGgAwIBAgIFSHyFNTEwDQYJKoZIhvcNAQEFBQAwfTERMA8GA1UEAxMI +ZXJsYW5nQ0ExIDAeBgkqhkiG9w0BCQEWEXRlc3RlckBlcmxhbmcub3JnMRIwEAYD +VQQHEwlTdG9ja2hvbG0xCzAJBgNVBAYTAlNFMQ8wDQYDVQQKEwZlcmxhbmcxFDAS +BgNVBAsTC3Rlc3RpbmcgZGVwMCIYDzIwMTAwOTAxMDAwMDAwWhgPMjAyNTA4Mjgw +MDAwMDBaMHoxDjAMBgNVBAMTBW90cENBMSAwHgYJKoZIhvcNAQkBFhF0ZXN0ZXJA +ZXJsYW5nLm9yZzESMBAGA1UEBxMJU3RvY2tob2xtMQswCQYDVQQGEwJTRTEPMA0G +A1UEChMGZXJsYW5nMRQwEgYDVQQLEwt0ZXN0aW5nIGRlcDCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEAjEt9iy365+mTialKDKb3l2QPg71yavJA1ZC6aGC14X7x +KCm1FhUYsVKOlWjmC1VYJiCS01gvKqMXiogreHJGM93E+URlKkOm9kmOWQwLfFb8 +JLzafPi3/8TUdjl8UuIDHyPsoQiM2ZBDUVWezfl+CBsTYFO3U4Lqf9OKbCxTF78C +AwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAv6vHw +wK3MvxzlhDJIx7rUasOYJDZJyOt71KdOKeA7+ocbvDIblmV7sTbe3oQNqbSATZ6H +RUqHZdPhKIZ9wjEBSKdBTL8rc0TvbztMvd+i0rkTCL/bspQYchA2zCcjgkWqpaN4 +OhOjQR1+9/ntmaU/r5Ca7KmrXEf5XSQIGLSMag== +-----END CERTIFICATE----- + diff --git a/lib/ssl/examples/certs/etc/server/cert.pem b/lib/ssl/examples/certs/etc/server/cert.pem new file mode 100644 index 0000000000..f26adb7f5c --- /dev/null +++ b/lib/ssl/examples/certs/etc/server/cert.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIIChzCCAfCgAwIBAgIGANUxXM9BMA0GCSqGSIb3DQEBBQUAMHoxDjAMBgNVBAMT +BW90cENBMSAwHgYJKoZIhvcNAQkBFhF0ZXN0ZXJAZXJsYW5nLm9yZzESMBAGA1UE +BxMJU3RvY2tob2xtMQswCQYDVQQGEwJTRTEPMA0GA1UEChMGZXJsYW5nMRQwEgYD +VQQLEwt0ZXN0aW5nIGRlcDAiGA8yMDEwMDkwMTAwMDAwMFoYDzIwMjUwODI4MDAw +MDAwWjB7MQ8wDQYDVQQDEwZzZXJ2ZXIxIDAeBgkqhkiG9w0BCQEWEXRlc3RlckBl +cmxhbmcub3JnMRIwEAYDVQQHEwlTdG9ja2hvbG0xCzAJBgNVBAYTAlNFMQ8wDQYD +VQQKEwZlcmxhbmcxFDASBgNVBAsTC3Rlc3RpbmcgZGVwMIGfMA0GCSqGSIb3DQEB +AQUAA4GNADCBiQKBgQCf4Htxr99lLs5W8QQw7jdakqyAkIjOW4aqH8sr4va4SvZ9 +Adq67k8jMHefCVZo+F8x4cwsBgB4aWzFIGBnvFTi6YsH27XW7f9O9IPCej8fdhRZ +4UAtNHa253buOWpDGla2JmIdkmfFvXFJycMIKbG5tYilVXoWKBMKmCwWaXz0nQID +AQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAGF5Pfwk +QDdwJup/mVITPxbBls4Yl7anDooUQsq8066lA1g54H/PRfXscGkyCFGh1ifXvf1L +psMRoBAdDHL/wSJplk3rRavkC94eBgnTFZmfKL6844g1j53yameiYL8IEVExYMBg +/XGyc0qwq57WT8B/K4aElrvlBlQ0wF3wN54M +-----END CERTIFICATE----- + diff --git a/lib/ssl/examples/certs/etc/server/key.pem b/lib/ssl/examples/certs/etc/server/key.pem new file mode 100644 index 0000000000..c1392ca557 --- /dev/null +++ b/lib/ssl/examples/certs/etc/server/key.pem @@ -0,0 +1,16 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQCf4Htxr99lLs5W8QQw7jdakqyAkIjOW4aqH8sr4va4SvZ9Adq6 +7k8jMHefCVZo+F8x4cwsBgB4aWzFIGBnvFTi6YsH27XW7f9O9IPCej8fdhRZ4UAt +NHa253buOWpDGla2JmIdkmfFvXFJycMIKbG5tYilVXoWKBMKmCwWaXz0nQIDAQAB +AoGAQIlma0r6W6bcRj4+Wd4fXCFvHuq5Psu1fYEeC5Yvz8761xVjjSfbrDHJZ9pm +FjOEgedK+s5lbDXqYVyjbdyZSugStBRocSmbG8SQHcAsxR2ZIkNzX2hYzB+lslWo +T3YJojDyB134O7XJznCu+ZFXP86jyJ1JT6k6a+OIHcwnJ+ECQQDYn57dY4Px3mEd +VBLStN3YkRF5oFyT+xk7IaKeLLB6n4gCnoVbBoHut7PFbPYPzoNzEwPk3MQKDIHb +Kig3S5CpAkEAvPA1VmoJWAlN6kUi+F2L8HXEArzE8x7vwdsslrwMKUe4dFS+ZC/7 +5iDOaxcZ7TYkCgwzBt341++DCgP6j3fY1QJBALB6AcOcwi52m6l4B8mu3ZkEPjdX +BHTuONTqhv/TqoaLlxODL2NDvvDKqeMp7KBd/srt79swW2lQXS4+fvrlTdkCQQCm +zxj4O1QWkthkfje6ubSkTwUIOatUzrp1F9GNH2dJRtX2dx9FCwxGCC7WY6XzRXqa +GF0wsedSllbGD+82nWQlAkAicMGqCqRq4hKR/cVmFatOqKVWCVkx6OFF2FhuiI5Z +h5eIOPGCt8dVRs1P9DNSld/D98Sfm65m85z8BtXovvYV +-----END RSA PRIVATE KEY----- + diff --git a/lib/ssl/examples/certs/src/make_certs.erl b/lib/ssl/examples/certs/src/make_certs.erl index c374836568..fe267bed28 100644 --- a/lib/ssl/examples/certs/src/make_certs.erl +++ b/lib/ssl/examples/certs/src/make_certs.erl @@ -1,261 +1,48 @@ -%% The purpose of this module is to create example certificates for -%% testing.  -%% Run it as:  -%% -%% erl -noinput -run make_certs all "/path/to/openssl" -s erlang halt -%% +%% The purpose of this module is to log how the example certs where created, +%% it requires erl_make_certs found in the test directory.  -module(make_certs). --export([all/0, all/1]). - --record(dn, {commonName,  -	     organizationalUnitName = "Erlang OTP", -	     organizationName = "Ericsson AB", -	     localityName = "Stockholm", -	     countryName = "SE", -	     emailAddress = "[email protected]"}). +-export([all/0]).  all() -> -    all(["openssl"]). - -all([OpenSSLCmd]) -> -    Root = filename:dirname(filename:dirname((code:which(?MODULE)))), -    %% io:fwrite("Root : ~s~n", [Root]), -    NRoot = filename:join([Root, "etc"]),  -    file:make_dir(NRoot),  -    create_rnd(Root, "etc"),			% For all requests -    rootCA(NRoot, OpenSSLCmd, "erlangCA"), -    intermediateCA(NRoot, OpenSSLCmd, "otpCA", "erlangCA"), -    endusers(NRoot, OpenSSLCmd, "otpCA", ["client", "server"]), -    collect_certs(NRoot, ["erlangCA", "otpCA"], ["client", "server"]), -    remove_rnd(Root, "etc"). - -rootCA(Root, OpenSSLCmd, Name) -> -    create_ca_dir(Root, Name, ca_cnf(Name)), -    DN = #dn{commonName = Name}, -    create_self_signed_cert(Root, OpenSSLCmd, Name, req_cnf(DN)), -    ok. - -intermediateCA(Root, OpenSSLCmd, CA, ParentCA) -> -    CA = "otpCA",  -    create_ca_dir(Root, CA, ca_cnf(CA)), -    CARoot = filename:join([Root, CA]), -    DN = #dn{commonName = CA}, -    CnfFile = filename:join([CARoot, "req.cnf"]), -    file:write_file(CnfFile, req_cnf(DN)), -    KeyFile = filename:join([CARoot, "private", "key.pem"]),  -    ReqFile =  filename:join([CARoot, "req.pem"]),  -    create_req(Root, OpenSSLCmd, CnfFile, KeyFile, ReqFile), -    CertFile = filename:join([CARoot, "cert.pem"]), -    sign_req(Root, OpenSSLCmd, ParentCA, "ca_cert", ReqFile, CertFile). - -endusers(Root, OpenSSLCmd, CA, Users) -> -    lists:foreach(fun(User) -> enduser(Root, OpenSSLCmd, CA, User) end, Users). - -enduser(Root, OpenSSLCmd, CA, User) ->  -    UsrRoot = filename:join([Root, User]), -    file:make_dir(UsrRoot), -    CnfFile = filename:join([UsrRoot, "req.cnf"]), -    DN = #dn{commonName = User}, -    file:write_file(CnfFile, req_cnf(DN)), -    KeyFile = filename:join([UsrRoot, "key.pem"]),  -    ReqFile =  filename:join([UsrRoot, "req.pem"]),  -    create_req(Root, OpenSSLCmd, CnfFile, KeyFile, ReqFile), -    CertFile =  filename:join([UsrRoot, "cert.pem"]),  -    sign_req(Root, OpenSSLCmd, CA, "user_cert", ReqFile, CertFile). - -collect_certs(Root, CAs, Users) -> -    Bins = lists:foldr( -	     fun(CA, Acc) ->  -		     File = filename:join([Root, CA, "cert.pem"]), -		     {ok, Bin} = file:read_file(File), -		     [Bin, "\n" | Acc] -	     end, [], CAs), -    lists:foreach( -      fun(User) -> -	      File = filename:join([Root, User, "cacerts.pem"]), -	      file:write_file(File, Bins) -      end, Users). - -create_self_signed_cert(Root, OpenSSLCmd, CAName, Cnf) -> -    CARoot = filename:join([Root, CAName]), -    CnfFile = filename:join([CARoot, "req.cnf"]), -    file:write_file(CnfFile, Cnf), -    KeyFile = filename:join([CARoot, "private", "key.pem"]),  -    CertFile = filename:join([CARoot, "cert.pem"]),  -    Cmd = [OpenSSLCmd, " req" -	   " -new" -	   " -x509" -	   " -config ", CnfFile, -	   " -keyout ", KeyFile,  -	   " -out ", CertFile],  -    Env = [{"ROOTDIR", Root}],   -    cmd(Cmd, Env). - -create_ca_dir(Root, CAName, Cnf) -> -    CARoot = filename:join([Root, CAName]), -    file:make_dir(CARoot), -    create_dirs(CARoot, ["certs", "crl", "newcerts", "private"]), -    create_rnd(Root, filename:join([CAName, "private"])), -    create_files(CARoot, [{"serial", "01\n"}, -			  {"index.txt", ""}, -			  {"ca.cnf", Cnf}]). - -create_req(Root, OpenSSLCmd, CnfFile, KeyFile, ReqFile) -> -    Cmd = [OpenSSLCmd, " req" -	   " -new" -	   " -config ", CnfFile, -	   " -keyout ", KeyFile,  -	   " -out ", ReqFile],  -    Env = [{"ROOTDIR", Root}],  -    cmd(Cmd, Env). - -sign_req(Root, OpenSSLCmd, CA, CertType, ReqFile, CertFile) -> -    CACnfFile = filename:join([Root, CA, "ca.cnf"]), -    Cmd = [OpenSSLCmd, " ca" -	   " -batch" -	   " -notext" -	   " -config ", CACnfFile,  -	   " -extensions ", CertType, -	   " -in ", ReqFile,  -	   " -out ", CertFile], -    Env = [{"ROOTDIR", Root}],  -    cmd(Cmd, Env). +    LongTime = calendar:gregorian_days_to_date(calendar:date_to_gregorian_days(date())+15*365), +    Validity = {date(), LongTime}, +    Subject = [{email, "[email protected]"}, +	       {city, "Stockholm"}, +	       {country, "SE"}, +	       {org, "erlang"}, +	       {org_unit, "testing dep"}], + +    RootCa = erl_make_certs:make_cert([{validity, Validity}, {subject, [{name, "erlangCA"}|Subject]}]), +    ImedCa = erl_make_certs:make_cert([{issuer, RootCa}, {validity, Validity},  +				       {subject, [{name, "otpCA"}|Subject]}]), +    ClientCa = erl_make_certs:make_cert([{issuer, ImedCa}, {validity, Validity},  +					 {subject, [{name, "client"}|Subject]}]), +    ServerCa = erl_make_certs:make_cert([{issuer, ImedCa}, {validity, Validity},  +					 {subject, [{name, "server"}|Subject]}]), + +    Root0  = filename:dirname(filename:dirname((code:which(?MODULE)))), +    Root   = filename:join([Root0, "etc"]),    file:make_dir(Root),  +    CaPath = filename:join([Root, "erlangCA"]), file:make_dir(CaPath),  +    IPath  = filename:join([Root, "otpCA"]),   file:make_dir(IPath),  +    CPath  = filename:join([Root, "client"]),  file:make_dir(CPath),  +    SPath  = filename:join([Root, "server"]),  file:make_dir(SPath),  + +    erl_make_certs:write_pem(CaPath,"cert", RootCa), +    erl_make_certs:write_pem(IPath, "cert", ImedCa), + +    {ok, CaBin0} = file:read_file(filename:join(CaPath, "cert.pem")), +    {ok, CaBin1} = file:read_file(filename:join(IPath, "cert.pem")), +    CaBin = <<CaBin0/binary, CaBin1/binary>>,  + +    erl_make_certs:write_pem(CPath, "cert", ClientCa), +    ok = file:write_file(filename:join(CPath, "cacerts.pem"), CaBin), +    erl_make_certs:write_pem(SPath, "cert", ServerCa), +    ok = file:write_file(filename:join(SPath, "cacerts.pem"), CaBin), -%% -%%  Misc -%% -     -create_dirs(Root, Dirs) -> -    lists:foreach(fun(Dir) -> -			  file:make_dir(filename:join([Root, Dir])) end, -		  Dirs). - -create_files(Root, NameContents) -> -    lists:foreach( -      fun({Name, Contents}) -> -	      file:write_file(filename:join([Root, Name]), Contents) end, -      NameContents). - -create_rnd(Root, Dir) -> -    From = filename:join([Root, "rnd", "RAND"]), -    To = filename:join([Root, Dir, "RAND"]), -    file:copy(From, To). - -remove_rnd(Root, Dir) -> -    File = filename:join([Root, Dir, "RAND"]), -    file:delete(File). - -cmd(Cmd, Env) -> -    FCmd = lists:flatten(Cmd), -    Port = open_port({spawn, FCmd}, [stream, eof, exit_status,  -				    {env, Env}]), -    eval_cmd(Port). - -eval_cmd(Port) -> -    receive  -	{Port, {data, _}} -> -	    eval_cmd(Port); -	{Port, eof} -> -	    ok -    end, -    receive -	{Port, {exit_status, Status}} when Status /= 0 -> -	    %% io:fwrite("exit status: ~w~n", [Status]), -	    erlang:halt(Status) -    after 0 -> -	    ok -    end. - -%% -%% Contents of configuration files  -%% - -req_cnf(DN) -> -    ["# Purpose: Configuration for requests (end users and CAs)." -     "\n" -     "ROOTDIR	        = $ENV::ROOTDIR\n" -     "\n" - -     "[req]\n" -     "input_password	= secret\n" -     "output_password	= secret\n" -     "default_bits	= 1024\n" -     "RANDFILE		= $ROOTDIR/RAND\n" -     "encrypt_key	= no\n" -     "default_md	= sha1\n" -     "#string_mask	= pkix\n" -     "x509_extensions	= ca_ext\n" -     "prompt		= no\n" -     "distinguished_name= name\n" -     "\n" - -     "[name]\n" -     "commonName		= ", DN#dn.commonName, "\n" -     "organizationalUnitName	= ", DN#dn.organizationalUnitName, "\n" -     "organizationName	        = ", DN#dn.organizationName, "\n"  -     "localityName		= ", DN#dn.localityName, "\n" -     "countryName		= ", DN#dn.countryName, "\n" -     "emailAddress		= ", DN#dn.emailAddress, "\n" -     "\n" - -     "[ca_ext]\n" -     "basicConstraints 	= critical, CA:true\n" -     "keyUsage 		= cRLSign, keyCertSign\n" -     "subjectKeyIdentifier = hash\n" -     "subjectAltName	= email:copy\n"]. - - -ca_cnf(CA) -> -    ["# Purpose: Configuration for CAs.\n" -     "\n" -     "ROOTDIR	        = $ENV::ROOTDIR\n" -     "default_ca	= ca\n" -     "\n" - -     "[ca]\n" -     "dir		= $ROOTDIR/", CA, "\n" -     "certs		= $dir/certs\n" -     "crl_dir	        = $dir/crl\n" -     "database	        = $dir/index.txt\n" -     "new_certs_dir	= $dir/newcerts\n" -     "certificate	= $dir/cert.pem\n" -     "serial		= $dir/serial\n" -     "crl		= $dir/crl.pem\n" -     "private_key	= $dir/private/key.pem\n" -     "RANDFILE	        = $dir/private/RAND\n" -     "\n" -     "x509_extensions   = user_cert\n" -     "default_days	= 3600\n" -     "default_md	= sha1\n" -     "preserve	        = no\n" -     "policy		= policy_match\n" -     "\n" - -     "[policy_match]\n" -     "commonName		= supplied\n" -     "organizationalUnitName	= optional\n" -     "organizationName	        = match\n" -     "countryName		= match\n" -     "localityName		= match\n" -     "emailAddress		= supplied\n" -     "\n" - -     "[user_cert]\n" -     "basicConstraints	= CA:false\n" -     "keyUsage 		= nonRepudiation, digitalSignature, keyEncipherment\n" -     "subjectKeyIdentifier = hash\n" -     "authorityKeyIdentifier = keyid,issuer:always\n" -     "subjectAltName	= email:copy\n" -     "issuerAltName	= issuer:copy\n" -     "\n" - -     "[ca_cert]\n" -     "basicConstraints 	= critical,CA:true\n" -     "keyUsage 		= cRLSign, keyCertSign\n" -     "subjectKeyIdentifier = hash\n" -     "authorityKeyIdentifier = keyid:always,issuer:always\n" -     "subjectAltName	= email:copy\n" -     "issuerAltName	= issuer:copy\n"]. - +    file:delete(filename:join(CaPath, "cert_key.pem")), +    file:delete(filename:join(IPath, "cert_key.pem")), +    file:rename(filename:join(CPath, "cert_key.pem"), filename:join(CPath, "key.pem")),  +    file:rename(filename:join(SPath, "cert_key.pem"), filename:join(SPath, "key.pem")),  +    ok.  | 
