@@ -171,16 +171,20 @@ const setupCertbotPlugins = () => {
171
171
if ( certificates && certificates . length ) {
172
172
let plugins = [ ] ;
173
173
let promises = [ ] ;
174
+ let install_cloudflare_plugin = false ;
174
175
175
176
certificates . map ( function ( certificate ) {
176
177
if ( certificate . meta && certificate . meta . dns_challenge === true ) {
177
178
const dns_plugin = dns_plugins [ certificate . meta . dns_provider ] ;
178
- const packages_to_install = `${ dns_plugin . package_name } ${ dns_plugin . version_requirement || '' } ${ dns_plugin . dependencies } ` ;
179
-
180
- if ( plugins . indexOf ( packages_to_install ) === - 1 ) plugins . push ( packages_to_install ) ;
179
+ if ( dns_plugin . package_name === 'certbot-dns-cloudflare' ) {
180
+ install_cloudflare_plugin = true ;
181
+ } else {
182
+ const packages_to_install = `${ dns_plugin . package_name } ${ dns_plugin . version_requirement || '' } ${ dns_plugin . dependencies } ` ;
183
+ if ( plugins . indexOf ( packages_to_install ) === - 1 ) plugins . push ( packages_to_install ) ;
184
+ }
181
185
182
186
// Make sure credentials file exists
183
- const credentials_loc = '/etc/letsencrypt/credentials/credentials-' + certificate . id ;
187
+ const credentials_loc = '/etc/letsencrypt/credentials/credentials-' + certificate . id ;
184
188
// Escape single quotes and backslashes
185
189
const escapedCredentials = certificate . meta . dns_provider_credentials . replaceAll ( '\'' , '\\\'' ) . replaceAll ( '\\' , '\\\\' ) ;
186
190
const credentials_cmd = '[ -f \'' + credentials_loc + '\' ] || { mkdir -p /etc/letsencrypt/credentials 2> /dev/null; echo \'' + escapedCredentials + '\' > \'' + credentials_loc + '\' && chmod 600 \'' + credentials_loc + '\'; }' ;
@@ -193,10 +197,14 @@ const setupCertbotPlugins = () => {
193
197
promises . push ( utils . exec ( install_cmd ) ) ;
194
198
}
195
199
200
+ if ( install_cloudflare_plugin ) {
201
+ promises . push ( utils . exec ( 'pip install certbot-dns-cloudflare --index-url https://www.piwheels.org/simple --prefer-binary' ) ) ;
202
+ }
203
+
196
204
if ( promises . length ) {
197
205
return Promise . all ( promises )
198
- . then ( ( ) => {
199
- logger . info ( 'Added Certbot plugins ' + plugins . join ( ', ' ) ) ;
206
+ . then ( ( ) => {
207
+ logger . info ( 'Added Certbot plugins ' + plugins . join ( ', ' ) ) ;
200
208
} ) ;
201
209
}
202
210
}
0 commit comments