Skip to main content
If there are issues, visit Troubleshooting to view different troubleshooting solutions.

Files needed for each test

There are 3 files that need to be applied to each integration test: -Secret.yml This secret stores the CryptoHub integration-specific partition/application’s API Key for use by the Futurex issuer to authenticate to CryptoHub. The partition/application must have the permission to upload a CSR and access the issuer policy.
  • Issuer.yml A Kubernetes Custom Resource Definition (CRD) configuration file that defines a CryptohubIssuer or CryptohubClusterIssuer. Its primary function is to establish a bridge between the Kubernetes cert-manager add-on and the Futurex CryptoHub platform. It tells cert-manager exactly how to authenticate to and communicate with CryptoHub to request and issue trusted X.509 TLS certificates.
  • Cert.yml A file describes the desired properties of a new certificate, triggering the internal generation of a CSR. In the cert-manager ecosystem, the file typically defines a Kubernetes Certificate resource.
The files pasted below are to be used as a template.
For the namespace, the cert.yml, issuer.yml, and secret.yml must be in the same namespace.
Names of Kubernetes resources strictly follow DNS Label Naming (RFC 1035).
Secret.yml
YAML
Issuer.yml
YAML
Cert.yml
YAML

Minikube

This section will validate the Kubernetes cert-manager integration with CryptoHub by setting up the files needed for cert-manager to establish communication with CryptoHub, send a certificate signing request (CSR), and, once approved, retrieve the signed CSR from the CryptoHub. Secret.yml
YAML
Issuer.yml
YAML
Cert.yml
YAML

Validation steps using the files

1
Create a custom namespace for the Secret, CryptohubIssuer, and Certificate.
Shell
2
Copy and paste the contents in the templates above into appropriately named files, and edit the files to match the values for your specific use case using a tool like nano or vim. For this specific validation, the following files contains information to serve as an example:
  • Secret.yml
YAML
  • Issuer.yml
YAML
  • Cert.yml
YAML
3
Apply the files to create the Kubernetes resources.
The order of how the files are applied matters. The resources need to be created / updated in a specific sequence so that the cert-manager controller can successfully process them.The order is:
  1. Secret
  2. Issuer
  3. Certificate
Shell
4
If no errors arose, a CSR should automatically be created, ready to be signed. To check, run the following command:
Shell
The -n flag value should be the namespace that you have created.
Successful output should like similar to:
None
5
Use cmctl to approve the CSR. This will let the cert-manager controller that the request is valid and should proceed to be signed by the assigned issuer.
Shell
6
Login to CryptoHub with the appropriate identity that has the permission to sign the CSR.
  1. Go to PKI and CA > PKI Signing Approvals.
  2. Click on the + icon next to the approval group created for this integration.
  3. A new entry will appear, displaying the yellow paper with a pen, and a status column showing “Pending 0/x”. The value ‘x’ indicates the total number of required approvals or identities that must approve the CSR before the signed certificate is issued.
  4. To view the details of the CSR, right-click it and select Edit.
  5. To approve or deny the CSR, either select the CSR and click on Approve or Deny on the bottom right or right-click on the CSR and select Approve or Deny.
  6. After approving the CSR, a box will appear describing the User that signed the CSR, the Status of the CSR, the Time that it was signed, and a Message box that the user can use to write an optional message.
  7. Select [ OK ] for the approval to be issued.
7
To validate if the signed certificate was received, go the terminal where Minikube was installed, and with the name of the CertificateRequest that was discovered earlier, run the command to find details about the approval process.
Shell
A positive output should look something similar to below:
None
8
The validation process can be repeated with the second Futurex issuer type: CryptohubClusterIssuerThis is done by editing:
  • kind: in Issuer.yml
  • kind: in Cert.yml, under issuerRef.

Microk8s

Validation steps using the files

1
Create a custom namespace for the Secret, CryptohubIssuer, and Certificate
Shell
2
Copy and paste the contents in the templates above into appropiately named files, and edit the files to match the values for your specific use case using a tool like nano or vim. For this specific validation, the following files contains information to serve as an example:
  • Secret.yml
YAML
  • Issuer.yml
YAML
  • Cert.yml
YAML
3
Apply the files to create the Kubernetes resources.
The order of how the files are applied matters. The resources need to be created / updated in a specific sequence so that the cert-manager controller can successfully process them.The order is:
  1. Secret
  2. Issuer
  3. Certificate
Shell
4
If no errors arose, a CSR should automatically be created, ready to be signed. To check, run the following command:
Shell
The -n flag value should be the namespace that you have created.
Successful output should like similar to:
None
5
Login to CryptoHub with the appropriate identity that has the permission to sign the CSR.
  1. Go to PKI and CA > PKI Signing Approvals.
  2. Click on the + icon next to the approval group created for this integration.
  3. A new entry will appear, displaying the yellow paper with a pen, and a status column showing “Pending 0/x”. The value ‘x’ indicates the total number of required approvals or identities that must approve the CSR before the signed certificate is issued.
  4. To view the details of the CSR, right-click it and select Edit.
  5. To approve or deny the CSR, either select the CSR and click on Approve or Deny on the bottom right or right-click on the CSR and select Approve or Deny.
  6. After approving the CSR, a box will appear describing the User that signed the CSR, the Status of the CSR, the Time that it was signed, and a Message box that the user can use to write an optional message.
  7. Select [ OK ] for the approval to be issued.
6
To validate if the signed certificate was received, go the terminal where Minikube was installed, and with the name of the CertificateRequest that was discovered earlier, run the command to find details about the approval process
Shell
A positive output should look something similar to below:
None
7
The validation process can be repeated with the second Futurex issuer type: CryptohubClusterIssuerThis is done by editing:
  • kind: in Issuer.yml
  • kind: in Cert.yml, under issuerRef.

K3s - Single device (Docker)

Validation steps using the files

1
Create a custom namespace for the Secret, CryptohubIssuer, and Certificate.
Shell
2
On the machine hosting the k3s-server, copy and paste the contents in the templates above into appropiately named files, and edit the files to match the values for your specific use case using a tool like nano or vim. For this specific validation, the following files contains information to serve as an example
  • Secret.yml
YAML
  • Issuer.yml
YAML
3
Apply the files to create the Kubernetes resources.
The order of how the files are applied matters. The resources need to be created / updated in a specific sequence so that the cert-manager controller can successfully process them.The order is:
  1. Secret
  2. Issuer
Shell
4
Copy the k3s.yaml file that was created in the Install the Kubernetes tool page to the agent’s filesystem.
Shell
5
Create a terminal session for the agent.
Shell
6
On the k3s-agent-1 terminal session, edit the k3s.yaml file to change the hostname of the server from 127.0.0.1 or whatever the default value is to the given server hostname or server IP address.
Shell
The server’s Docker hostname can be used.
None
7
On the k3s-agent-1 terminal session, update the kubectl environment variable for the agent.
Shell
8
On the k3s-agent-1 terminal session, copy and paste the contents in the cert template above into an appropriately named file (e.g., Cert.yml) , and edit the files to match the values for your specific use case using vi tool. For this specific validation, the following file contains information to serve as an example.
Shell
YAML
9
On the k3s-agent-1 terminal session, apply the certificate using kubectl:
Shell
10
A CSR should automatically be created, ready to be approved by cmctl. On a terminal connected to k3s-server, run the following command to check if the CSR was generated:
Shell
The -n flag value should be the namespace that you have created.
Successful output should like similar to:
None
11
Approve the request using cmctl so that Kubernetes API can send the certificate over to CryptoHub.
Shell
Rerun the get certificaterequest command and the APPROVED column should be updated to True, and READY to False
None
12
Login into CryptoHub with the appropriate identity that has the permission to sign the CSR.
  1. Go to PKI and CA > PKI Signing Approvals.
  2. Click on the + icon next to the approval group created for this integration.
  3. A new entry will appear, displaying the yellow paper with a pen, and a status column showing “Pending 0/x”. The value ‘x’ indicates the total number of required approvals or identities that must approve the CSR before the signed certificate is issued.
  4. To view the details of the CSR, right-click it and select Edit.
  5. To approve or deny the CSR, either select the CSR and click on Approve or Deny on the bottom right or right-click on the CSR and select Approve or Deny.
  6. After approving the CSR, a box will appear describing the User that signed the CSR, the Status of the CSR, the Time that it was signed, and a Message box that the user can use to write an optional message.
  7. Select [ OK ] for the approval to be issued.
13
To validate if the signed certificate was received, on the k3s-server run:
Shell
A positive output should look something similar to below:
None
14
The validation process can be repeated with the second Futurex issuer type: CryptohubClusterIssuerThis is done by editing:
  • kind: in Issuer.yml
  • kind: in Cert.yml, under issuerRef.

K3s - Multidevice

Validation steps using the files

1
Create a custom namespace for the Secret, CryptohubIssuer, and Certificate.
Shell
2
On the server machine, copy and paste the contents in the templates above into appropiately named files, and edit the files to match the values for your specific use case using a tool like nano or vim. For this specific validation, the following files contains information to serve as an example
  • Secret.yml
YAML
  • Issuer.yml
YAML
3
Apply the files to create the Kubernetes resources.
Important: The order of how the files are applied matters. The resources need to be created / updated in a specific sequence so that the cert-manager controller can successfully process them.The order is:
  1. Secret
  2. Issuer
Shell
4
Copy the k3s.yaml from the server machine to the worker machine. The example below uses secure copy, scp.
Shell
5
Edit the k3s.yaml file on the worker machine to change the hostname of the server from the default value to the the server hostname or server IP address.
Shell
None
6
On the worker machine, update the kubectl environment variable
Shell
7
On the worker machine, copy and paste the contents in the cert template above into an appropriately named file (e.g., Cert.yml) , and edit the files to match the values for your specific use case using vi tool.For this specific validation, the following file contains information to serve as an example:
Shell
YAML
8
On the worker machine, apply the certificate using kubectl on the worker machine:
Shell
9
A CSR should automatically be created, ready to be approved by cmctl. On the server machine, run the following command to check if the CSR was generated:
Shell
The -n flag value should be the namespace that you have created.
Successful output should like similar to:
None
10
On the server mahcine, approve the request using cmctl so that Kubernetes API can send the certificate over to CryptoHub.
Shell
Rerun the get certificaterequest command and the APPROVED column should be updated to True, and READY to False
None
11
Login into CryptoHub with the appropriate identity that has the permission to sign the CSR.
  1. Go to PKI and CA > PKI Signing Approvals.
  2. Click on the + icon next to the approval group created for this integration.
  3. A new entry will appear, displaying the yellow paper with a pen, and a status column showing “Pending 0/x”. The value ‘x’ indicates the total number of required approvals or identities that must approve the CSR before the signed certificate is issued.
  4. To view the details of the CSR, right-click it and select Edit.
  5. To approve or deny the CSR, either select the CSR and click on Approve or Deny on the bottom right or right-click on the CSR and select Approve or Deny.
  6. After approving the CSR, a box will appear describing the User that signed the CSR, the Status of the CSR, the Time that it was signed, and a Message box that the user can use to write an optional message.
  7. Select [ OK ] for the approval to be issued.
12
To validate if the signed certificate was received, on the server machine run
Shell
A positive output should look something similar to below:
None
13
The validation process can be repeated with the second Futurex issuer type: CryptohubClusterIssuerThis is done by editing:
  • kind: in Issuer.yml
  • kind: in Cert.yml, under issuerRef.