mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
CF: Add ability to manage UniversalSSL (#496)
* Added Cloudflare UniveralSSL control * Added CF_UNIVERSALSSL_ON/OFF macros * Updated docs * Small docs update * go generate
This commit is contained in:
committed by
Tom Limoncelli
parent
8b86eec6bf
commit
539820f87a
@ -41,6 +41,7 @@ Record level metadata available:
|
||||
|
||||
Domain level metadata available:
|
||||
* `cloudflare_proxy_default` ("on", "off", or "full")
|
||||
* `cloudflare_universalssl` (unset to keep untouched; otherwise "on, or "off")
|
||||
|
||||
Provider level metadata available:
|
||||
* `ip_conversions`
|
||||
@ -76,6 +77,10 @@ var CF_PROXY_FULL = {'cloudflare_proxy': 'full'}; // Proxy+Railgun enabled.
|
||||
var CF_PROXY_DEFAULT_OFF = {'cloudflare_proxy_default': 'off'};
|
||||
// Proxy default on for entire domain:
|
||||
var CF_PROXY_DEFAULT_ON = {'cloudflare_proxy_default': 'on'};
|
||||
// UniversalSSL off for entire domain:
|
||||
var CF_UNIVERSALSSL_OFF = { cloudflare_universalssl: 'off' };
|
||||
// UniversalSSL on for entire domain:
|
||||
var CF_UNIVERSALSSL_ON = { cloudflare_universalssl: 'on' };
|
||||
{% endhighlight %}
|
||||
|
||||
The following example shows how to set meta variables with and without aliases:
|
||||
|
@ -605,6 +605,10 @@ var CF_PROXY_FULL = { cloudflare_proxy: 'full' }; // Proxy+Railgun enabled.
|
||||
var CF_PROXY_DEFAULT_OFF = { cloudflare_proxy_default: 'off' };
|
||||
// Proxy default on for entire domain:
|
||||
var CF_PROXY_DEFAULT_ON = { cloudflare_proxy_default: 'on' };
|
||||
// UniversalSSL off for entire domain:
|
||||
var CF_UNIVERSALSSL_OFF = { cloudflare_universalssl: 'off' };
|
||||
// UniversalSSL on for entire domain:
|
||||
var CF_UNIVERSALSSL_ON = { cloudflare_universalssl: 'on' };
|
||||
|
||||
// CUSTOM, PROVIDER SPECIFIC RECORD TYPES
|
||||
|
||||
|
189
pkg/js/static.go
189
pkg/js/static.go
@ -192,102 +192,103 @@ var _escData = map[string]*_escFile{
|
||||
|
||||
"/helpers.js": {
|
||||
local: "pkg/js/helpers.js",
|
||||
size: 21587,
|
||||
size: 21786,
|
||||
modtime: 0,
|
||||
compressed: `
|
||||
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
|
||||
`,
|
||||
},
|
||||
|
||||
|
@ -103,9 +103,11 @@ func (c *CloudflareApi) GetDomainCorrections(dc *models.DomainConfig) ([]*models
|
||||
if !ok {
|
||||
return nil, errors.Errorf("%s not listed in zones for cloudflare account", dc.Name)
|
||||
}
|
||||
|
||||
if err := c.preprocessConfig(dc); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
records, err := c.getRecordsForDomain(id, dc.Name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -118,6 +120,7 @@ func (c *CloudflareApi) GetDomainCorrections(dc *models.DomainConfig) ([]*models
|
||||
records = append(records[:i], records[i+1:]...)
|
||||
}
|
||||
}
|
||||
|
||||
if c.manageRedirects {
|
||||
prs, err := c.getPageRules(id, dc.Name)
|
||||
if err != nil {
|
||||
@ -125,6 +128,7 @@ func (c *CloudflareApi) GetDomainCorrections(dc *models.DomainConfig) ([]*models
|
||||
}
|
||||
records = append(records, prs...)
|
||||
}
|
||||
|
||||
for _, rec := range dc.Records {
|
||||
if rec.Type == "ALIAS" {
|
||||
rec.Type = "CNAME"
|
||||
@ -139,6 +143,7 @@ func (c *CloudflareApi) GetDomainCorrections(dc *models.DomainConfig) ([]*models
|
||||
log.Fatalf("FATAL: dnsconfig contains label that matches ignored_labels: %#v is in %v)\n", rec.GetLabel(), c.ignoredLabels)
|
||||
}
|
||||
}
|
||||
|
||||
checkNSModifications(dc)
|
||||
|
||||
// Normalize
|
||||
@ -189,6 +194,21 @@ func (c *CloudflareApi) GetDomainCorrections(dc *models.DomainConfig) ([]*models
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// Add universalSSL change to corrections when needed
|
||||
if changed, newState, err := c.checkUniversalSSL(dc, id); err == nil && changed {
|
||||
var newStateString string
|
||||
if newState {
|
||||
newStateString = "enabled"
|
||||
} else {
|
||||
newStateString = "disabled"
|
||||
}
|
||||
corrections = append(corrections, &models.Correction{
|
||||
Msg: fmt.Sprintf("Universal SSL will be %s for this domain.", newStateString),
|
||||
F: func() error { return c.changeUniversalSSL(id, newState) },
|
||||
})
|
||||
}
|
||||
|
||||
return corrections, nil
|
||||
}
|
||||
|
||||
@ -206,10 +226,34 @@ func checkNSModifications(dc *models.DomainConfig) {
|
||||
dc.Records = newList
|
||||
}
|
||||
|
||||
func (c *CloudflareApi) checkUniversalSSL(dc *models.DomainConfig, id string) (changed bool, newState bool, err error) {
|
||||
expected_str := dc.Metadata[metaUniversalSSL]
|
||||
if expected_str == "" {
|
||||
return false, false, errors.Errorf("Metadata not set.")
|
||||
}
|
||||
|
||||
if actual, err := c.getUniversalSSL(id); err == nil {
|
||||
// convert str to bool
|
||||
var expected bool
|
||||
if expected_str == "off" {
|
||||
expected = false
|
||||
} else {
|
||||
expected = true
|
||||
}
|
||||
// did something change?
|
||||
if actual != expected {
|
||||
return true, expected, nil
|
||||
}
|
||||
return false, expected, nil
|
||||
}
|
||||
return false, false, errors.Errorf("error receiving universal ssl state:")
|
||||
}
|
||||
|
||||
const (
|
||||
metaProxy = "cloudflare_proxy"
|
||||
metaProxyDefault = metaProxy + "_default"
|
||||
metaOriginalIP = "original_ip" // TODO(tlim): Unclear what this means.
|
||||
metaUniversalSSL = "cloudflare_universalssl"
|
||||
metaIPConversions = "ip_conversions" // TODO(tlim): Rename to obscure_rules.
|
||||
)
|
||||
|
||||
@ -235,23 +279,31 @@ func (c *CloudflareApi) preprocessConfig(dc *models.DomainConfig) error {
|
||||
}
|
||||
}
|
||||
|
||||
currentPrPrio := 1
|
||||
// Check UniversalSSL setting
|
||||
if u := dc.Metadata[metaUniversalSSL]; u != "" {
|
||||
u = strings.ToLower(u)
|
||||
if (u != "on" && u != "off") {
|
||||
return errors.Errorf("Bad metadata value for %s: '%s'. Use on/off.", metaUniversalSSL, u)
|
||||
}
|
||||
}
|
||||
|
||||
// Normalize the proxy setting for each record.
|
||||
// A and CNAMEs: Validate. If null, set to default.
|
||||
// else: Make sure it wasn't set. Set to default.
|
||||
// iterate backwards so first defined page rules have highest priority
|
||||
currentPrPrio := 1
|
||||
for i := len(dc.Records) - 1; i >= 0; i-- {
|
||||
rec := dc.Records[i]
|
||||
if rec.Metadata == nil {
|
||||
rec.Metadata = map[string]string{}
|
||||
}
|
||||
if rec.TTL == 0 || rec.TTL == 300 {
|
||||
if rec.TTL == 0 { // Please read: https://github.com/StackExchange/dnscontrol/issues/490
|
||||
rec.TTL = 1
|
||||
}
|
||||
if rec.TTL != 1 && rec.TTL < 120 {
|
||||
rec.TTL = 120
|
||||
}
|
||||
|
||||
if rec.Type != "A" && rec.Type != "CNAME" && rec.Type != "AAAA" && rec.Type != "ALIAS" {
|
||||
if rec.Metadata[metaProxy] != "" {
|
||||
return errors.Errorf("cloudflare_proxy set on %v record: %#v cloudflare_proxy=%#v", rec.Type, rec.GetLabel(), rec.Metadata[metaProxy])
|
||||
@ -269,6 +321,7 @@ func (c *CloudflareApi) preprocessConfig(dc *models.DomainConfig) error {
|
||||
rec.Metadata[metaProxy] = val
|
||||
}
|
||||
}
|
||||
|
||||
// CF_REDIRECT record types. Encode target as $FROM,$TO,$PRIO,$CODE
|
||||
if rec.Type == "CF_REDIRECT" || rec.Type == "CF_TEMP_REDIRECT" {
|
||||
if !c.manageRedirects {
|
||||
|
@ -286,6 +286,56 @@ func (c *CloudflareApi) modifyRecord(domainID, recID string, proxied bool, rec *
|
||||
return err
|
||||
}
|
||||
|
||||
// change universal ssl state
|
||||
func (c *CloudflareApi) changeUniversalSSL(domainID string, state bool) error {
|
||||
type setUniversalSSL struct {
|
||||
Enabled bool `json:"enabled"`
|
||||
}
|
||||
us := &setUniversalSSL{
|
||||
Enabled: state,
|
||||
}
|
||||
|
||||
// create json
|
||||
buf := &bytes.Buffer{}
|
||||
encoder := json.NewEncoder(buf)
|
||||
if err := encoder.Encode(us); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// send request.
|
||||
endpoint := fmt.Sprintf(zonesURL+"%s/ssl/universal/settings", domainID)
|
||||
req, err := http.NewRequest("PATCH", endpoint, buf)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
c.setHeaders(req)
|
||||
_, err = handleActionResponse(http.DefaultClient.Do(req))
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// change universal ssl state
|
||||
func (c *CloudflareApi) getUniversalSSL(domainID string) (bool, error) {
|
||||
type universalSSLResponse struct {
|
||||
Success bool `json:"success"`
|
||||
Errors []interface{} `json:"errors"`
|
||||
Messages []interface{} `json:"messages"`
|
||||
Result struct {
|
||||
Enabled bool `json:"enabled"`
|
||||
} `json:"result"`
|
||||
}
|
||||
|
||||
// send request.
|
||||
endpoint := fmt.Sprintf(zonesURL+"%s/ssl/universal/settings", domainID)
|
||||
var result universalSSLResponse
|
||||
err := c.get(endpoint, &result)
|
||||
if err != nil {
|
||||
return true, err
|
||||
}
|
||||
|
||||
return result.Result.Enabled, err
|
||||
}
|
||||
|
||||
// common error handling for all action responses
|
||||
func handleActionResponse(resp *http.Response, err error) (id string, e error) {
|
||||
if err != nil {
|
||||
|
Reference in New Issue
Block a user