21 lines
		
	
	
		
			590 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			21 lines
		
	
	
		
			590 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								#!/bin/bash
							 | 
						||
| 
								 | 
							
								set -eu -o pipefail
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Variables
							 | 
						||
| 
								 | 
							
								confFile=/tmp/$1.conf
							 | 
						||
| 
								 | 
							
								domainName=$2
							 | 
						||
| 
								 | 
							
								outDir=$3
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Create certificate
							 | 
						||
| 
								 | 
							
								cp /etc/ssl/openssl.cnf "$confFile"
							 | 
						||
| 
								 | 
							
								echo "[subjectAltName]" >> "$confFile"
							 | 
						||
| 
								 | 
							
								echo "subjectAltName = DNS:$domainName, DNS:*.$domainName" >> "$confFile"
							 | 
						||
| 
								 | 
							
								mkdir -p $outDir
							 | 
						||
| 
								 | 
							
								openssl req -days 365 -newkey rsa:2048 -nodes -sha256 -x509 \
							 | 
						||
| 
								 | 
							
								            -config "$confFile" -extensions subjectAltName -subj "/CN=$domainName" \
							 | 
						||
| 
								 | 
							
								            -out "$outDir/$domainName.crt" -keyout "$outDir/$domainName.key"
							 | 
						||
| 
								 | 
							
								chmod -R 400 "$outDir"
							 | 
						||
| 
								 | 
							
								cp "$outDir/$domainName.crt" /usr/local/share/ca-certificates
							 |