nano-tetra-modules/Papers/includes/scripts/cfgNginx.py

47 lines
1.7 KiB
Python
Executable File

#!/usr/bin/python
# Author: sud0nick
# Date: Jan 2016
import sys
import argparse
from cfgHelper import ConfigHelper
parser = argparse.ArgumentParser(description='Nginx Configuration Tool')
parser.add_argument('-k', action='store', dest='keyName', help='Name of the keys to use for SSL configuration')
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('--add', action='store_true', dest='addSSL', help='Configure Nginx to use SSL. Requires -k to be set.')
group.add_argument('--replace', action='store_true', dest='replaceSSL', help='Replace current SSL certificates. Requires -k to be set.')
group.add_argument('--remove', action='store_true', dest='removeSSL', help='Remove SSL configuration from Nginx.')
group.add_argument('--getSSLCerts', action='store_true', dest='getSSLCerts', help="Get the current certs being used for SSL in Nginx.")
args = parser.parse_args()
if (args.addSSL and not args.keyName) or (args.replaceSSL and not args.keyName):
parser.error("The option selected requires the -k option be provided as well.")
# Create a new instance of ConfigHelper that points to the
# nginx SSL store (default is /etc/nginx/ssl/)
helper = ConfigHelper()
# Add the configuration to the nginx config file
if args.addSSL:
if not helper.checkSSLCertsExist():
print "SSL certs must first be generated"
quit()
if not helper.addSSLConfig(args.keyName):
print "An error has occurred while attempting to configure SSL"
else:
print "Complete"
elif args.replaceSSL:
helper.replaceSSLConfig(args.keyName)
print "Complete"
elif args.removeSSL:
helper.removeSSLConfig()
print "Complete"
elif args.getSSLCerts:
if len(helper.currentSSLCerts) > 0:
print "\n".join(helper.currentSSLCerts)