mirror of
				https://github.com/NginxProxyManager/nginx-proxy-manager.git
				synced 2025-10-31 15:53:33 +00:00 
			
		
		
		
	Merge pull request #1701 from jc21/escape-credential-backslashes
Correctly escape backslashes in dns plugin credentials
This commit is contained in:
		| @@ -871,8 +871,10 @@ const internalCertificate = { | |||||||
| 		logger.info(`Requesting Let'sEncrypt certificates via ${dns_plugin.display_name} for Cert #${certificate.id}: ${certificate.domain_names.join(', ')}`); | 		logger.info(`Requesting Let'sEncrypt certificates via ${dns_plugin.display_name} for Cert #${certificate.id}: ${certificate.domain_names.join(', ')}`); | ||||||
|  |  | ||||||
| 		const credentialsLocation = '/etc/letsencrypt/credentials/credentials-' + certificate.id; | 		const credentialsLocation = '/etc/letsencrypt/credentials/credentials-' + certificate.id; | ||||||
| 		const credentialsCmd      = 'mkdir -p /etc/letsencrypt/credentials 2> /dev/null; echo \'' + certificate.meta.dns_provider_credentials.replace('\'', '\\\'') + '\' > \'' + credentialsLocation + '\' && chmod 600 \'' + credentialsLocation + '\''; | 		// Escape single quotes and backslashes | ||||||
| 		const prepareCmd          = 'pip install ' + dns_plugin.package_name + (dns_plugin.version_requirement || '') + ' ' + dns_plugin.dependencies; | 		const escapedCredentials = certificate.meta.dns_provider_credentials.replaceAll('\'', '\\\'').replaceAll('\\', '\\\\'); | ||||||
|  | 		const credentialsCmd     = 'mkdir -p /etc/letsencrypt/credentials 2> /dev/null; echo \'' + escapedCredentials + '\' > \'' + credentialsLocation + '\' && chmod 600 \'' + credentialsLocation + '\''; | ||||||
|  | 		const prepareCmd         = 'pip install ' + dns_plugin.package_name + (dns_plugin.version_requirement || '') + ' ' + dns_plugin.dependencies; | ||||||
|  |  | ||||||
| 		// Whether the plugin has a --<name>-credentials argument | 		// Whether the plugin has a --<name>-credentials argument | ||||||
| 		const hasConfigArg = certificate.meta.dns_provider !== 'route53'; | 		const hasConfigArg = certificate.meta.dns_provider !== 'route53'; | ||||||
|   | |||||||
| @@ -181,7 +181,9 @@ const setupCertbotPlugins = () => { | |||||||
|  |  | ||||||
| 						// Make sure credentials file exists | 						// Make sure credentials file exists | ||||||
| 						const credentials_loc = '/etc/letsencrypt/credentials/credentials-' + certificate.id;  | 						const credentials_loc = '/etc/letsencrypt/credentials/credentials-' + certificate.id;  | ||||||
| 						const credentials_cmd = '[ -f \'' + credentials_loc + '\' ] || { mkdir -p /etc/letsencrypt/credentials 2> /dev/null; echo \'' + certificate.meta.dns_provider_credentials.replace('\'', '\\\'') + '\' > \'' + credentials_loc + '\' && chmod 600 \'' + credentials_loc + '\'; }'; | 						// Escape single quotes and backslashes | ||||||
|  | 						const escapedCredentials = certificate.meta.dns_provider_credentials.replaceAll('\'', '\\\'').replaceAll('\\', '\\\\'); | ||||||
|  | 						const credentials_cmd    = '[ -f \'' + credentials_loc + '\' ] || { mkdir -p /etc/letsencrypt/credentials 2> /dev/null; echo \'' + escapedCredentials + '\' > \'' + credentials_loc + '\' && chmod 600 \'' + credentials_loc + '\'; }'; | ||||||
| 						promises.push(utils.exec(credentials_cmd)); | 						promises.push(utils.exec(credentials_cmd)); | ||||||
| 					} | 					} | ||||||
| 				}); | 				}); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user