How to create certificates both CA certificates and client certificates that you could use for lab testing to repeat all the steps in our tutorials. So in order to do things easily and quickly, assuming there is no existing infrastructure, assuming there is nothing you can use that you’re available on-hand, you could use some open source tools that are out there on the internet. I will use degree-based certificate authority and key management called XCA.
You can Google it. You can download it. It’s available for everyone to use.
So now, when we will use XCA tool, first thing we will need to do, we’ll need to create a new database.
You could think of this creating a specific BQ infrastructure right on your laptop.
So we can just say missed access insurance tutorial.
Database, save it in there, it will ask you to encrypt it, which is a good thing.
Click OK. So now we have the database created.
So the first thing we will need to create our certificate infrastructure is the certificate authority. That’s the thing that will sign all the certificates of all your client devices that you will be using for testing. And that’s the ultimate source of trust in your BQ infrastructure.
So I’m going to click on new certificate.
I’m going to select that, this is going to be a self-signed certificate because technically, every certificate authority, the root certificate authority is a self-signed.
Has a self-signed certificate. We’ll select the template called CA from this list, will then go to subject. We can give it some internal name but doesn’t matter, we could just say lab mist CA.
You can fill in some of the data in there.
Again, it doesn’t really matter what you will put in there. But for testing purposes, just use anything you really like, organization name. Common name is important. This is how you identify certificates in real life. So one of the important attributes is common name. And we will take a look at the other one later, which is called the subject alternative name.
So common name, let’s just call it lab-mist-ca@justify.com.
Maybe something like this. I’m going to click that.
We’ll need to create a private key. A private key is what will prove that the certificate– oh, owned and certificate holder is actually that same device or it’s same CA. So we’ll generate a new key, we’ll set it to be 4,000 bytes, create.
It will automatically selected here. It’s good. We’ll go to extensions.
The type will be certification authority. It will add a few attributes in the certificate saying this is a CA cert.
This is where we will add the subject to alternative name. So typically what you’ll do is you click edit, you will say I want to copy common name and there. Click apply. That’s it. This will typically go and take your common name and copy it into a assign attribute.
Nowadays, many clients are using SAN to validate– certificate validity.
And the key usage, what do we need there?
We need certificate signs, CRL sign.
That’s pretty much it. So we’ll click OK.
This now created our certificate authority in here. So we have the certificate. This is a CA cert, it has a common name.
The expiry date is, well, next year, but typically CA cert would be valid for like 10 years or something like that. For our intents and purposes, this is just a lot testing one year is more than enough.
So what will then need to do is will create a client cert. So click select our CA, will click new certificate. Now see under signing section, we are going to use this CA cert for signing certificates. It’s not going to be self-signed anymore. So now our certificate authority will sign a new certificate that will be issued by the client. This is how we will establish this chain of trust.
So create, select the template– TLS client.
We’ll go to subject.
That just say this is going to be a test lab client.
Doesn’t matter.
So common name is important. So this is where I would recommend you to use something that is an actual username that you want to use later on with your testing, whether you have an identity provider with your test username or things like that.
So in my case, I will use one username I have in my Okta IdP that I will use later on. So I’m going to just use my Juniper email address.
I’m going to copy it. We’ll need to generate a private key, again, 4,000 bits.
We’ll go to extensions, we’ll select end entity.
We’ll click on subject, alternative name. Again, we’ll just say copy common name.
We’ll go to key usage, will now need to select that this is a client certificate not the service certificate.
And we will need key encipherments, digital signature, it should be OK.
Now we click OK. We now have a client certificate.
So now we see there is a little dropdown in there. So we have a CA but now sign the client certificate. So now we have a CA and now we have a client certificate. What we’ll do will need to export the CA.
I will click on export.
The CA cert, we are only exporting the public certificate, we are not touching the private key. Private Key stays untouched. It it is never exported anywhere. This is the only thing that protects the ownership of that certificate.
So we are exporting the private key in our test folder– .mistCRT
that’s all we need. Click OK. The next thing we’ll need is we’ll need to export the certificate and the private key that we will use for client testing.
Again, normally in production environment, you’re not going to export private keys, they will be automatically pushed and distributed through MDM securely so they’re never exposed to the network or anybody. But in our case, since we’re testing, that’s OK to do for now. So we’ll click export.
In this case, the export format is pfx.
That’s the format that will include the client certificate, the client private key, and the CA cert in one package. So you can later on imported to one of your testing clients. And generally, this format is well understood by different operating systems.
It will ask you to encrypt that package. So just do a very secure password of 1234.
Now we have to search, export it. We have a CA cert and we have a client cert. For now, this is good enough for our testing.
How to create both CA and client certificates you can use for lab testing.