This PR adds support for automatic SSL issuance using Cloudflare when a custom domain is updated. - Introduced a cloudflare configuration. If present, the system will attempt to issue an SSL certificate via Cloudflare whenever a custom domain is added or changed. - SSL verification is handled using an HTTP challenge. - The job will store the HTTP challenge response provided by Cloudflare and serve it under the /.well-known/cf path automatically. How to test: - Create a Cloudflare zone for your domain and copy the Zone ID. - Generate a Cloudflare API token with the required SSL certificate permissions. - Set the Fallback Origin under SSL -> Custom HostName to the Chatwoot installation. - Add or update a custom domain and verify that the SSL certificate is automatically issued. --------- Co-authored-by: Sojan Jose <sojan@pepalo.com>
21 lines
418 B
Ruby
21 lines
418 B
Ruby
class Cloudflare::BaseCloudflareZoneService
|
|
BASE_URI = 'https://api.cloudflare.com/client/v4'.freeze
|
|
|
|
private
|
|
|
|
def headers
|
|
{
|
|
'Authorization' => "Bearer #{api_token}",
|
|
'Content-Type' => 'application/json'
|
|
}
|
|
end
|
|
|
|
def api_token
|
|
InstallationConfig.find_by(name: 'CLOUDFLARE_API_KEY')&.value
|
|
end
|
|
|
|
def zone_id
|
|
InstallationConfig.find_by(name: 'CLOUDFLARE_ZONE_ID')&.value
|
|
end
|
|
end
|