Checking domain rights
To pass a domain rights check:
- In the management console
, select the folder you added the certificate to. - Navigate to Certificate Manager.
- Select and click the certificate you need checked.
- Under Check rights for domains, you will see the details required to pass the domain rights check.
- As soon as you pass the domain rights check, its status under Check rights for domains will change to
Valid. - After the check status for all the domains changes to
Valid, a certificate will be issued and its status will change toIssued.
If you do not have the Yandex Cloud CLI yet, install and initialize it.
The folder used by default is the one specified when creating the CLI profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also specify a different folder for any command using --folder-name or --folder-id. If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.
-
View the command description:
yc certificate-manager certificate get --help -
Run this command:
yc certificate-manager certificate get \ --id fpq6gvvm6piu******** \ --fullWhere:
--id: Certificate ID.--full: Show the 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 information you need to pass the rights check under
http_challenge. -
As soon as you pass the domain rights check, its 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, a 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 domain rights. Follow these steps:
-
In the Terraform configuration file, describe 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 properties:domains: Domain you need to create a certificate for.challenge_type: Domain owner check method. The possible values are:
yandex_dns_recordsetresource properties:zone_id: ID of the DNS zone to add the owner verification record to.name: Record name.type: DNS record type.data: Record value.ttl: Record time to live (TTL) in seconds before updating the record value.description: Record set description. This is an optional setting.
yandex_dns_recordsetdata source properties:depends_on: Indicates the 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 isVALIDATING. The default value isfalse.
For more information about resource parameters, see this Terraform provider guide.
-
Create the resources:
-
In the terminal, navigate to the configuration file directory.
-
Make sure the configuration is correct using this command:
terraform validateIf the configuration is valid, you will get this message:
Success! The configuration is valid. -
Run this command:
terraform planYou will see a list of resources and their properties. No changes will be made at this step. Terraform will show any errors in the configuration.
-
Apply the configuration 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 a domain rights check, 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.