From 2008f8422a4f2ef7a06c8433534d22235b33f9a8 Mon Sep 17 00:00:00 2001 From: Daniel Rahamim Date: Mon, 16 May 2022 16:54:15 -0700 Subject: [PATCH 1/9] inital logic of csrgen script --- csrgen.py | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100755 csrgen.py diff --git a/csrgen.py b/csrgen.py new file mode 100755 index 0000000..a128cb0 --- /dev/null +++ b/csrgen.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python3 +import argparse +import re +import os +from jinja2 import Template + +description = """ +Simple script to handle generating Certificate Signing Requests (CSR) +This has the ability to generate CSRs with and without a provided key. +Also can handle multiple domains as Subject Alternative Name (SAN) records. +""" + +def check_file(file): + if os.stat(file).st_size > 0: + return file + +def check_domain(input): + if check_file(input): + return input, True + else: + domain_template = re.compile( + "^(?=.{1,255}$)(?!-)[A-Za-z0-9\-]{1,63}(\.[A-Za-z0-9\-]{1,63})*\.?(? Date: Mon, 16 May 2022 16:57:06 -0700 Subject: [PATCH 2/9] formatting fixes --- csrgen.py | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/csrgen.py b/csrgen.py index a128cb0..57efa12 100755 --- a/csrgen.py +++ b/csrgen.py @@ -10,10 +10,12 @@ Also can handle multiple domains as Subject Alternative Name (SAN) records. """ + def check_file(file): if os.stat(file).st_size > 0: return file + def check_domain(input): if check_file(input): return input, True @@ -22,30 +24,27 @@ def check_domain(input): "^(?=.{1,255}$)(?!-)[A-Za-z0-9\-]{1,63}(\.[A-Za-z0-9\-]{1,63})*\.?(? Date: Mon, 16 May 2022 17:01:07 -0700 Subject: [PATCH 3/9] fix typo --- csrgen.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csrgen.py b/csrgen.py index 57efa12..0ab3ab1 100755 --- a/csrgen.py +++ b/csrgen.py @@ -44,7 +44,7 @@ def parse_arguments(): config.add_argument("-c", "--country", help="Country short code") config.add_argument("-l", "--locality", help="Locality/City") config.add_argument("-s", "--state", help="State Name") - config.add_argument("-o", "--org", help="Orginization Name", required=True) + config.add_argument("-o", "--org", help="Organization Name", required=True) if parser.parse_args().command: return parser.parse_args() From 94d1afedd66bd64458381fdf6c72f945fcb51573 Mon Sep 17 00:00:00 2001 From: Daniel Rahamim Date: Tue, 17 May 2022 17:01:22 -0700 Subject: [PATCH 4/9] adding config file template --- csrgen.py | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/csrgen.py b/csrgen.py index 0ab3ab1..938c7af 100755 --- a/csrgen.py +++ b/csrgen.py @@ -9,10 +9,45 @@ This has the ability to generate CSRs with and without a provided key. Also can handle multiple domains as Subject Alternative Name (SAN) records. """ +config_template = """[ req ] + default_bits = 2048 + distinguished_name = req_distinguished_name + prompt = no + req_extensions = v3_req +[ req_distinguished_name ] + {% if c is not none -%} + C = {{s}} + {%- endif %} + {%- if l is not none -%} + L = {{l}} + {%- endif %} + {%- if s is not none -%} + ST = {{s}} + {%- endif %} + {%- if o is not none -%} + O = {{o}} + {%- endif %} +{{' CN = {{ cn }} +[ v3_req ] + subjectAltName = @alt_names + +[alt_names] + DNS.1 = {{ cn }} + {%- for domain in sans %} + {%- if domain %} + DNS.{{ loop.index +1 }} = {{ domain }} + {%- endif %} + {%- endfor %} +'}} +""" def check_file(file): - if os.stat(file).st_size > 0: + try: + os.stat(file).st_size > 1 + except: + return False + else: return file @@ -53,8 +88,14 @@ def parse_arguments(): def main(args): + tm = Template(config_template) + if args.command == 'config': - print("end test") + print(tm.render(c=args.country, l=args.locality, + s=args.state, o=args.org)) + + else: + print("test failed") if __name__ == '__main__': From e859bf776dcd7a7eaba0650404d3db92c02d9108 Mon Sep 17 00:00:00 2001 From: Daniel Rahamim Date: Wed, 18 May 2022 15:49:56 -0700 Subject: [PATCH 5/9] finished main logic. --- bork_gen_config | 18 ++++++++++++++++++ csrgen.py | 47 +++++++++++++++++++++++++++++++++++------------ 2 files changed, 53 insertions(+), 12 deletions(-) create mode 100644 bork_gen_config diff --git a/bork_gen_config b/bork_gen_config new file mode 100644 index 0000000..27406a2 --- /dev/null +++ b/bork_gen_config @@ -0,0 +1,18 @@ +[ req ] + default_bits = 2048 + distinguished_name = req_distinguished_name + prompt = no + req_extensions = v3_req +[ req_distinguished_name ] + O = bork + CN = {{ cn }} +[ v3_req ] + subjectAltName = @alt_names + +[alt_names] + DNS.1 = {{ cn }} + {%- for domain in sans %} + {%- if domain %} + DNS.{{ loop.index +1 }} = {{ domain }} + {%- endif %} + {%- endfor %} diff --git a/csrgen.py b/csrgen.py index 938c7af..83091ff 100755 --- a/csrgen.py +++ b/csrgen.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 import argparse +import fnmatch import re import os from jinja2 import Template @@ -10,10 +11,10 @@ Also can handle multiple domains as Subject Alternative Name (SAN) records. """ config_template = """[ req ] - default_bits = 2048 - distinguished_name = req_distinguished_name - prompt = no - req_extensions = v3_req + default_bits = 2048 + distinguished_name = req_distinguished_name + prompt = no + req_extensions = v3_req [ req_distinguished_name ] {% if c is not none -%} C = {{s}} @@ -74,6 +75,7 @@ def parse_arguments(): csr.add_argument('-k', "--key", type=check_file, help='Specify a key') csr.add_argument('-d', "--domain", type=check_domain, required=True, help="Specify a domain or a file with list of domains") + csr.add_argument("-o", "--org", help="Organization Name") config = subparser.add_parser("config", help="Create config file") config.add_argument("-c", "--country", help="Country short code") @@ -85,17 +87,38 @@ def parse_arguments(): return parser.parse_args() else: parser.print_help() + exit() +def gen_csr(): + print("Generating CSR..") + def main(args): - tm = Template(config_template) - if args.command == 'config': - - print(tm.render(c=args.country, l=args.locality, - s=args.state, o=args.org)) - - else: - print("test failed") + # Look for presence of 1 or more config files + if args.command == 'csr': + config_file_search = fnmatch.filter(os.listdir(), "*_gen_config") + if len(config_file_search) == 0: + print("No config files found please run with 'config -h' to create one") + exit() + elif len(config_file_search) > 1: # Check if there is more then one config file + if args.org: + if check_file({args.org + "_gen_config"}): + gen_csr() + else: + print("Please specify Organization name with -o ") + exit() + else: # there is only one found so assume its the right one + gen_csr() + + elif args.command == 'config': + tm = Template(config_template) + config_file_name = args.org + "_gen_config" + print("Creating config template file: {filename}".format( + filename=config_file_name)) + config_file = open(config_file_name, "w") + config_file.write(tm.render(c=args.country, l=args.locality, + s=args.state, o=args.org)) + config_file.close() if __name__ == '__main__': From 11931974e3f2b2a69a230eb3869bc59f6a0f2a49 Mon Sep 17 00:00:00 2001 From: Daniel Rahamim Date: Wed, 18 May 2022 17:13:20 -0700 Subject: [PATCH 6/9] Working version --- csrgen.py | 84 +++++++++++++++++++++++++--- spark.com.csr | 16 ++++++ spark.com.key | 27 +++++++++ spark.com_csr_config | 13 +++++ bork_gen_config => sporks_gen_config | 2 +- 5 files changed, 133 insertions(+), 9 deletions(-) create mode 100644 spark.com.csr create mode 100644 spark.com.key create mode 100644 spark.com_csr_config rename bork_gen_config => sporks_gen_config (92%) diff --git a/csrgen.py b/csrgen.py index 83091ff..12df34f 100755 --- a/csrgen.py +++ b/csrgen.py @@ -3,7 +3,13 @@ import fnmatch import re import os -from jinja2 import Template +import subprocess +import readline +from jinja2 import Template, Environment, FileSystemLoader + +file_loader = FileSystemLoader('.') +env = Environment(loader=file_loader) + description = """ Simple script to handle generating Certificate Signing Requests (CSR) @@ -59,7 +65,7 @@ def check_domain(input): domain_template = re.compile( "^(?=.{1,255}$)(?!-)[A-Za-z0-9\-]{1,63}(\.[A-Za-z0-9\-]{1,63})*\.?(? 1: # Check if there is more then one config file if args.org: + # Check if any of the config files match the specified Org if check_file({args.org + "_gen_config"}): - gen_csr() + csr_config_out = gen_csr_config( + args, {args.org + "_gen_config"}) else: print("Please specify Organization name with -o ") exit() - else: # there is only one found so assume its the right one - gen_csr() + else: # There is only one found so assume its the right one\ + csr_config_out = gen_csr_config(args, config_file_search[0]) + + + # Validate key argument and file + if args.key: + if check_file(args.key): + try: + subprocess.call(['openssl', 'rsa', '-in', + args.key, '-check']) + except: + print("Key specified is not a valid rsa key.") + else: + print("Key file specified doesn't exist.") + else: + print("No key specified. Creating a new one.") + subprocess.call(['openssl', 'genrsa', '-out', + args.domain + '.key', '2048']) + print("Key Generated") + + + if args.key: + print("Generatinc CSR") + subprocess.call(['openssl', 'req', '-new', '-config', csr_config_out, + '-key', + args.key, '-out', args.domain + '.csr']) + else: + print("Generatinc CSR") + subprocess.call(['openssl', 'req', '-new', '-config', csr_config_out, + '-key', args.domain + '.key', '-out', args.domain + '.csr']) elif args.command == 'config': tm = Template(config_template) diff --git a/spark.com.csr b/spark.com.csr new file mode 100644 index 0000000..9cc5df1 --- /dev/null +++ b/spark.com.csr @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICkTCCAXkCAQAwJTEPMA0GA1UECgwGc3BvcmtzMRIwEAYDVQQDDAlzcGFyay5j +b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8fcZP8USezfr4GSds +oiIKJPYMWtk8/k+eFgpJSUv+7vmAlEOFwJmDtwzxmFaFcS9CG75GfCT6wJpzPZBB +YepofP6+aqXXTK+8KL8HGnynXhM03XMc4/ZMpsW4o72wN6mAg0K+MJuFPM2eS3rl +lliL+J1yTp61wxx5Pw7NZ7JweyJ/Y4z3ra/xQYC5OmeCzeOHhuetIqluQ/vkXbME +hBrTG8q7ZSUw0yPQjQHZKGXJoXiY9cvlyZfzscrzUC+3mVVBMhxA+THi6fj5xiIZ +etS8k1WktcU4IsYrKof2QZ2e0rifsQ2LOQudKzVfPBJzmXYDIYMCE/t/DBZD2e6m +0/4FAgMBAAGgJzAlBgkqhkiG9w0BCQ4xGDAWMBQGA1UdEQQNMAuCCXNwYXJrLmNv +bTANBgkqhkiG9w0BAQsFAAOCAQEAOFIyr4t1v32YM7VfmuC24IwZ3p4UADmbtcaG +ZcH32zLn2T1CxbR7WiiEPz/HnQHziS4ZS52L88LZvnjZBjTn/PfA33Dny2qoDad6 +BnkMhwafVP51T8RWBVUp0Ax1irnEA+Y3/dgUjQCEJMCRTbls5J0XMx4A5RZABWur +KmAgPXq0NEq3xjj1D8PYAQV803xGqo9m3tpcQ5EZREkuPtTj+XoMN4mVoGMwAg6K +sPyXIIb02fWLISLuttgI2Mxu1jFGGfZex75tfv3yq+Mpx1P8KA+tIoQcJdVxD2+N +kr4mJB4l0S6YaocjOj4/QlOxkDx/3flFV42JFkvBdWBc96ExwQ== +-----END CERTIFICATE REQUEST----- diff --git a/spark.com.key b/spark.com.key new file mode 100644 index 0000000..90b7774 --- /dev/null +++ b/spark.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEAvH3GT/FEns36+BknbKIiCiT2DFrZPP5PnhYKSUlL/u75gJRD +hcCZg7cM8ZhWhXEvQhu+Rnwk+sCacz2QQWHqaHz+vmql10yvvCi/Bxp8p14TNN1z +HOP2TKbFuKO9sDepgINCvjCbhTzNnkt65ZZYi/idck6etcMceT8OzWeycHsif2OM +962v8UGAuTpngs3jh4bnrSKpbkP75F2zBIQa0xvKu2UlMNMj0I0B2ShlyaF4mPXL +5cmX87HK81Avt5lVQTIcQPkx4un4+cYiGXrUvJNVpLXFOCLGKyqH9kGdntK4n7EN +izkLnSs1XzwSc5l2AyGDAhP7fwwWQ9nuptP+BQIDAQABAoIBAQCexn/XdU+tSas/ +c8je3FA6JVpRm/FkTIB6lOxDQYfPjjQDmGCseUmXRwmTNRSkwWvijwYfz5FC3Bz+ +N/yc5sMTEz9u3N0n2AQsRlJrxGb+gONC48uEqY4ekVj6KIuvtaOFiowdM0q92DMI +RWKXpKaf+WN/FzTfvSPuCi0I33HTBqQzU5NF4wN1bhZrOp7A5kuROrfwCfhMirv3 +BL5Aclnm2wU49SONuse1KCEdSHP1g63W9ANiI3T/B7aH4+pG3Zqv3mz0iX/PKjVj +eosRSUBueT+DXJdxbTvwGfmctYSrsn8QnYeWzos7SnXOQQah+mvSkbjScQn6Ad+Y +lfJY2XS9AoGBAN6O+rRYIfoTBVmESalkuGzZCgPBQDO81z15KaY8VLuTYqNphT1V +v+uKnEvOMDyC9S82WxoQLUH558i8uI18x3mEeHiLsVgLKiJHXAm5RGfwEZl0gdIi +Kfz+g2EeshdbKnenamqqABe+uabe4FwLPYdJIW3pv6ZoozedOVoquiK7AoGBANjQ +Wmvo5rg+te2m/ACC671warKT0/1rLxy95qS9UAC7NsDiAPBtEFQqp8eWnPym3+lh +tJB7hyqG6C0Smbg+bZfzwUhSYTOFCgJTY1OxG67nf0N1gZ2E3ThjZ82toUKem2jg +qQT5juZBMzs9npw1BQ3qtSR3gCXduEaADoCA9jY/AoGBAK++6GqRTgNUEd1mgWSq +jJgnq6jbaf9xF+cLTsBe0+prsHCqWvTcSfmOM24JHD4si8EEg1xJefOnjEkP/gx8 +hGiJGzjV1u1Xo6X+A8gJ7OLGyJ8NSZbOM6n8sXJ38tpOu3JRWc9w/zHBAomrZjBJ +EAVM0oEhHJ4j8v9vwGJbazERAoGBAI9MLecSWKM/d1iqO/ZOkWZ0jWCXyc29cLbr +YCxTnzPMiKS0+u/s9ZTbWGbWyc1Gscj7Na8kpbJa1cssdwLJ5/89MOsO34WAkZv1 +5zkiXmycPoWkfVVRwjCJqsrKzkFMuOR5T9yk4GiYgTbPRCxz8nI/RRfkD4N3Zlra +Ojt+gLxbAoGALGJcS93nkNBPYjLR0vfJBqvvTCk8Y0nB163bQHg/UuLbSLNc/JDf +8H5F1tu5FD6Xkz5SBTNrJ1hpiN8Eom5sOthRh37PYYfPNOrQeV0gQZ+XGfnUJnZV +4LFI1WE7+03YEcUoc/yd15r2P4HZ4ayBHKWUUqjxjgp97pPKcDGMzf8= +-----END RSA PRIVATE KEY----- diff --git a/spark.com_csr_config b/spark.com_csr_config new file mode 100644 index 0000000..624f633 --- /dev/null +++ b/spark.com_csr_config @@ -0,0 +1,13 @@ +[ req ] + default_bits = 2048 + distinguished_name = req_distinguished_name + prompt = no + req_extensions = v3_req +[ req_distinguished_name ] + O = sporks + CN = spark.com +[ v3_req ] + subjectAltName = @alt_names + +[alt_names] + DNS.1 = spark.com \ No newline at end of file diff --git a/bork_gen_config b/sporks_gen_config similarity index 92% rename from bork_gen_config rename to sporks_gen_config index 27406a2..20de059 100644 --- a/bork_gen_config +++ b/sporks_gen_config @@ -4,7 +4,7 @@ prompt = no req_extensions = v3_req [ req_distinguished_name ] - O = bork + O = sporks CN = {{ cn }} [ v3_req ] subjectAltName = @alt_names From 5355a4df4d3c1a670d749ba9acc1b00a8fad7d10 Mon Sep 17 00:00:00 2001 From: Daniel Rahamim Date: Thu, 19 May 2022 08:29:34 -0700 Subject: [PATCH 7/9] removing test files --- spark.com.csr | 16 ---------------- spark.com.key | 27 --------------------------- spark.com_csr_config | 13 ------------- sporks_gen_config | 18 ------------------ 4 files changed, 74 deletions(-) delete mode 100644 spark.com.csr delete mode 100644 spark.com.key delete mode 100644 spark.com_csr_config delete mode 100644 sporks_gen_config diff --git a/spark.com.csr b/spark.com.csr deleted file mode 100644 index 9cc5df1..0000000 --- a/spark.com.csr +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN CERTIFICATE REQUEST----- -MIICkTCCAXkCAQAwJTEPMA0GA1UECgwGc3BvcmtzMRIwEAYDVQQDDAlzcGFyay5j -b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8fcZP8USezfr4GSds -oiIKJPYMWtk8/k+eFgpJSUv+7vmAlEOFwJmDtwzxmFaFcS9CG75GfCT6wJpzPZBB -YepofP6+aqXXTK+8KL8HGnynXhM03XMc4/ZMpsW4o72wN6mAg0K+MJuFPM2eS3rl -lliL+J1yTp61wxx5Pw7NZ7JweyJ/Y4z3ra/xQYC5OmeCzeOHhuetIqluQ/vkXbME -hBrTG8q7ZSUw0yPQjQHZKGXJoXiY9cvlyZfzscrzUC+3mVVBMhxA+THi6fj5xiIZ -etS8k1WktcU4IsYrKof2QZ2e0rifsQ2LOQudKzVfPBJzmXYDIYMCE/t/DBZD2e6m -0/4FAgMBAAGgJzAlBgkqhkiG9w0BCQ4xGDAWMBQGA1UdEQQNMAuCCXNwYXJrLmNv -bTANBgkqhkiG9w0BAQsFAAOCAQEAOFIyr4t1v32YM7VfmuC24IwZ3p4UADmbtcaG -ZcH32zLn2T1CxbR7WiiEPz/HnQHziS4ZS52L88LZvnjZBjTn/PfA33Dny2qoDad6 -BnkMhwafVP51T8RWBVUp0Ax1irnEA+Y3/dgUjQCEJMCRTbls5J0XMx4A5RZABWur -KmAgPXq0NEq3xjj1D8PYAQV803xGqo9m3tpcQ5EZREkuPtTj+XoMN4mVoGMwAg6K -sPyXIIb02fWLISLuttgI2Mxu1jFGGfZex75tfv3yq+Mpx1P8KA+tIoQcJdVxD2+N -kr4mJB4l0S6YaocjOj4/QlOxkDx/3flFV42JFkvBdWBc96ExwQ== ------END CERTIFICATE REQUEST----- diff --git a/spark.com.key b/spark.com.key deleted file mode 100644 index 90b7774..0000000 --- a/spark.com.key +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpQIBAAKCAQEAvH3GT/FEns36+BknbKIiCiT2DFrZPP5PnhYKSUlL/u75gJRD -hcCZg7cM8ZhWhXEvQhu+Rnwk+sCacz2QQWHqaHz+vmql10yvvCi/Bxp8p14TNN1z -HOP2TKbFuKO9sDepgINCvjCbhTzNnkt65ZZYi/idck6etcMceT8OzWeycHsif2OM -962v8UGAuTpngs3jh4bnrSKpbkP75F2zBIQa0xvKu2UlMNMj0I0B2ShlyaF4mPXL -5cmX87HK81Avt5lVQTIcQPkx4un4+cYiGXrUvJNVpLXFOCLGKyqH9kGdntK4n7EN -izkLnSs1XzwSc5l2AyGDAhP7fwwWQ9nuptP+BQIDAQABAoIBAQCexn/XdU+tSas/ -c8je3FA6JVpRm/FkTIB6lOxDQYfPjjQDmGCseUmXRwmTNRSkwWvijwYfz5FC3Bz+ -N/yc5sMTEz9u3N0n2AQsRlJrxGb+gONC48uEqY4ekVj6KIuvtaOFiowdM0q92DMI -RWKXpKaf+WN/FzTfvSPuCi0I33HTBqQzU5NF4wN1bhZrOp7A5kuROrfwCfhMirv3 -BL5Aclnm2wU49SONuse1KCEdSHP1g63W9ANiI3T/B7aH4+pG3Zqv3mz0iX/PKjVj -eosRSUBueT+DXJdxbTvwGfmctYSrsn8QnYeWzos7SnXOQQah+mvSkbjScQn6Ad+Y -lfJY2XS9AoGBAN6O+rRYIfoTBVmESalkuGzZCgPBQDO81z15KaY8VLuTYqNphT1V -v+uKnEvOMDyC9S82WxoQLUH558i8uI18x3mEeHiLsVgLKiJHXAm5RGfwEZl0gdIi -Kfz+g2EeshdbKnenamqqABe+uabe4FwLPYdJIW3pv6ZoozedOVoquiK7AoGBANjQ -Wmvo5rg+te2m/ACC671warKT0/1rLxy95qS9UAC7NsDiAPBtEFQqp8eWnPym3+lh -tJB7hyqG6C0Smbg+bZfzwUhSYTOFCgJTY1OxG67nf0N1gZ2E3ThjZ82toUKem2jg -qQT5juZBMzs9npw1BQ3qtSR3gCXduEaADoCA9jY/AoGBAK++6GqRTgNUEd1mgWSq -jJgnq6jbaf9xF+cLTsBe0+prsHCqWvTcSfmOM24JHD4si8EEg1xJefOnjEkP/gx8 -hGiJGzjV1u1Xo6X+A8gJ7OLGyJ8NSZbOM6n8sXJ38tpOu3JRWc9w/zHBAomrZjBJ -EAVM0oEhHJ4j8v9vwGJbazERAoGBAI9MLecSWKM/d1iqO/ZOkWZ0jWCXyc29cLbr -YCxTnzPMiKS0+u/s9ZTbWGbWyc1Gscj7Na8kpbJa1cssdwLJ5/89MOsO34WAkZv1 -5zkiXmycPoWkfVVRwjCJqsrKzkFMuOR5T9yk4GiYgTbPRCxz8nI/RRfkD4N3Zlra -Ojt+gLxbAoGALGJcS93nkNBPYjLR0vfJBqvvTCk8Y0nB163bQHg/UuLbSLNc/JDf -8H5F1tu5FD6Xkz5SBTNrJ1hpiN8Eom5sOthRh37PYYfPNOrQeV0gQZ+XGfnUJnZV -4LFI1WE7+03YEcUoc/yd15r2P4HZ4ayBHKWUUqjxjgp97pPKcDGMzf8= ------END RSA PRIVATE KEY----- diff --git a/spark.com_csr_config b/spark.com_csr_config deleted file mode 100644 index 624f633..0000000 --- a/spark.com_csr_config +++ /dev/null @@ -1,13 +0,0 @@ -[ req ] - default_bits = 2048 - distinguished_name = req_distinguished_name - prompt = no - req_extensions = v3_req -[ req_distinguished_name ] - O = sporks - CN = spark.com -[ v3_req ] - subjectAltName = @alt_names - -[alt_names] - DNS.1 = spark.com \ No newline at end of file diff --git a/sporks_gen_config b/sporks_gen_config deleted file mode 100644 index 20de059..0000000 --- a/sporks_gen_config +++ /dev/null @@ -1,18 +0,0 @@ -[ req ] - default_bits = 2048 - distinguished_name = req_distinguished_name - prompt = no - req_extensions = v3_req -[ req_distinguished_name ] - O = sporks - CN = {{ cn }} -[ v3_req ] - subjectAltName = @alt_names - -[alt_names] - DNS.1 = {{ cn }} - {%- for domain in sans %} - {%- if domain %} - DNS.{{ loop.index +1 }} = {{ domain }} - {%- endif %} - {%- endfor %} From 4cc6880d7e9213d9907e68232e3f8599cdfa3caa Mon Sep 17 00:00:00 2001 From: Daniel Rahamim Date: Thu, 19 May 2022 08:42:36 -0700 Subject: [PATCH 8/9] minor code cleanup --- csrgen.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/csrgen.py b/csrgen.py index 12df34f..0968407 100755 --- a/csrgen.py +++ b/csrgen.py @@ -97,7 +97,6 @@ def parse_arguments(): def gen_csr_config(args, config_file): - tm = env.get_template(config_file) print(config_file) SANS = list() @@ -128,7 +127,7 @@ def gen_csr_config(args, config_file): generated_csr_config = open(args.domain + '_csr_config', 'w') generated_csr_config.write(tm.render(cn=CN, sans=SANS)) generated_csr_config.close() - + return str(args.domain + '_csr_config') @@ -151,7 +150,6 @@ def main(args): else: # There is only one found so assume its the right one\ csr_config_out = gen_csr_config(args, config_file_search[0]) - # Validate key argument and file if args.key: if check_file(args.key): @@ -168,7 +166,6 @@ def main(args): args.domain + '.key', '2048']) print("Key Generated") - if args.key: print("Generatinc CSR") subprocess.call(['openssl', 'req', '-new', '-config', csr_config_out, @@ -178,7 +175,7 @@ def main(args): subprocess.call(['openssl', 'req', '-new', '-config', csr_config_out, '-key', args.domain + '.key', '-out', args.domain + '.csr']) - elif args.command == 'config': + if args.command == 'config': tm = Template(config_template) config_file_name = args.org + "_gen_config" print("Creating config template file: {filename}".format( From cfa115fe2f1e69e479191d07a9bd251d77f2c71a Mon Sep 17 00:00:00 2001 From: Daniel Rahamim Date: Thu, 19 May 2022 11:19:50 -0700 Subject: [PATCH 9/9] Apply suggestions from code review Spelling fixes Co-authored-by: Daniel Hoherd --- csrgen.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/csrgen.py b/csrgen.py index 0968407..1b3e1f7 100755 --- a/csrgen.py +++ b/csrgen.py @@ -167,11 +167,11 @@ def main(args): print("Key Generated") if args.key: - print("Generatinc CSR") + print("Generating CSR") subprocess.call(['openssl', 'req', '-new', '-config', csr_config_out, '-key', + args.key, '-out', args.domain + '.csr']) else: - print("Generatinc CSR") + print("Generating CSR") subprocess.call(['openssl', 'req', '-new', '-config', csr_config_out, '-key', args.domain + '.key', '-out', args.domain + '.csr'])