Checking domain rights
- In the management console
, select the folder the certificate was added to. - In the list of services, select Certificate Manager.
- Select and click the certificate you need checked.
- In the window that opens, you will find the info you will need to pass the rights check under Check rights for domains.
- As soon as the domain rights check is passed, the check status under Check rights for domains will change to
Valid. - After the check status for all the domains changes to
Valid, the certificate will be issued and its status will change toIssued.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
-
View a description of the command:
yc certificate-manager certificate get --help -
Run this command:
yc certificate-manager certificate get \ --id fpq6gvvm6piu******** \ --fullWhere:
--id: Certificate ID.--full: Show a list of active domain rights checks.
Result:
id: fpq6gvvm6piu******** folder_id: b1g7gvsi89m3******** created_at: "2020-09-15T08:49:11.533771Z" name: mymanagedcert type: MANAGED domains: - example.com status: VALIDATING updated_at: "2020-09-15T08:49:11.533771Z" challenges: - domain: example.com type: HTTP created_at: "2020-09-15T08:49:11.533771Z" updated_at: "2020-09-15T08:51:44.991065Z" status: PENDING message: Create a file in your web server's base directory. http_challenge: url: http://example.com/.well-known/acme-challenge/3LiH-nrTC7GdMbRgVqttEvdTODeNeaD0TtX******** content: 3LiH-nrTC7GdMbRgVqttEvdTODeNeaD0TtXteWgtAH8.ZHCju15sJiKBwT8G5FTl7UtfmJWp1gKNYYP******** -
You can find the info you will need to pass the rights check under
http_challenge. -
As soon as the domain rights check is passed, the check status will change to
Valid:yc certificate-manager certificate get \ --id fpq6gvvm6piu******** \ --fullResult:
... domains: - example.com status: VALID ... -
After the check status for all the domains changes to
Valid, the certificate will be issued and its status will change toIssued:yc certificate-manager certificate get \ --id fpq6gvvm6piu******** \ --fullResult:
... domains: - example.com status: ISSUED ...
With Terraform
Terraform is distributed under the Business Source License
For more information about the provider resources, see the relevant documentation on the Terraform
If you do not have Terraform yet, install it and configure the Yandex Cloud provider.
With Terraform, you can create a DNS record required to check your rights to a domain. To do this:
-
In the Terraform configuration file, describe the parameters of the resources you want to create:
resource "yandex_cm_certificate" "le-certificate" { name = "<certificate_name>" domains = ["<domain>"] managed { challenge_type = "DNS_CNAME" } } resource "yandex_dns_recordset" "validation-record" { zone_id = "<zone_ID>" name = yandex_cm_certificate.le-certificate.challenges[0].dns_name type = yandex_cm_certificate.le-certificate.challenges[0].dns_type data = [yandex_cm_certificate.le-certificate.challenges[0].dns_value] ttl = <record_time_to_live_in_seconds> } data "yandex_cm_certificate" "example" { depends_on = [yandex_dns_recordset.validation-record] certificate_id = yandex_cm_certificate.le-certificate.id wait_validation = true } # Use data.yandex_cm_certificate.example.id to get a valid certificate. output "cert-id" { description = "Certificate ID" value = data.yandex_cm_certificate.example.id }Where:
yandex_cm_certificateresource parameters:domains: Domain you need to create a certificate for.challenge_type: Domain owner verification method. The possible values are:
yandex_dns_recordsetresource parameters:zone_id: ID of the DNS zone the owner verification record will be in.name: Record name.type: DNS record type.data: Record value.ttl: Record time to live (TTL) in seconds before updating the record value.
yandex_dns_recordsetdata source parameters:depends_on: Indicates dependence on another Terraform resource.certificate_id: Certificate ID.wait_validation: Certificate validation wait flag. Iftrue, the operation will not be completed until the certificate is inVALIDATINGstatus. The default value isfalse.
For more information about resource parameters, see the Terraform provider documentation.
-
Create resources:
-
In the terminal, go to the directory where you edited the configuration file.
-
Make sure the configuration file is correct using this command:
terraform validateIf the configuration is correct, you will get this message:
Success! The configuration is valid. -
Run this command:
terraform planYou will see a detailed list of resources. No changes will be made at this step. If the configuration contains any errors, Terraform will show them.
-
Apply the changes:
terraform apply -
Type
yesand press Enter to confirm the changes.
-
This will create a certificate and DNS record in the specified folder. You can check the new certificate and its settings using the management console
yc certificate-manager certificate get <certificate_name> --full
To get the information required to pass the permission check for a domain, use the get REST API method for the Certificate resource or the CertificateService/Get gRPC API call with the view=FULL flag.
Note
For a successful DNS domain rights check based on a CNAME record, make sure the _acme-challenge subdomain of the domain name you are checking has no other resource records except CNAME. For example, for the _acme-challenge.example.com. domain name, there should only be a CNAME record and no TXT record.