This section will cover the steps necessary to create a Stir/Shaken certificate.
Certificate private key
A private key for the certificate must be created using EC P-256 algorithm. This can be done using OpenSSL library for the selected programming language, or using the CLI tool:
Copy openssl ecparam -genkey -name prime256v1 -out ./private_key.pem
ACME server does not support other encryption algorithms, as well as other types of Elliptic Curves.
TNAuthList
Every STIR/SHAKEN SP certificate must include a TNAuthList extension (OID 1.3.6.1.5.5.7.1.26), defined in RFC 8226.
The extension should contain a unique Service Provider account code (OCN):
Copy asn1=SEQUENCE:tn_auth_list
[tn_auth_list]
field1=EXP:0,IA5:<OCN>
TNAuthList value, used in the ACME HTTP requests, is a base64-encoded extension ASN.1 object.
For example, for OCN 616H X509v3 extension will be:
Copy asn1=SEQUENCE:tn_auth_list
[tn_auth_list]
field1=EXP:0,IA5:616H
And the base64-encoded TNAuthList value for HTTP requests:
How to generate "TNAuthList value"
tkvalue is a base64-encoded X509 extension and you can create it using openssl CLI tool with the following steps:
Step 1: Create ssl .conf file
Copy cat << EOF > tnauthlist.conf
asn1=SEQUENCE:tn_auth_list
[tn_auth_list]
field1=EXP:0,IA5:<UPPERCASE OCN>
EOF
Step 2: Create extension
Copy openssl asn1parse -genconf tnauthlist.conf -noout -out tnauthlist.der
Step 3: Encode
Copy cat tnauthlist.der | base64
Here is a full example:
Copy % cat << EOF > tnauthlist.conf
asn1=SEQUENCE:tn_auth_list
[tn_auth_list]
field1=EXP:0,IA5:818H
EOF
% openssl asn1parse -genconf tnauthlist.conf -noout -out tnauthlist.der
% cat tnauthlist.der | base64
MAigBhYEODE4SA==
Order creation
To submit a new certificate order, ACME client should send a POST request to the newOrder URL with a set of parameters in the payload:
identifiers (mandatory) - contains TNAuthList value
notBefore (optional) - desired notBefore value of the created certificate
notAfter (optional) - desired notAfter value
Mandatory parameter "identifiers" must be a JSON array with a single TNAuthList value object:
Copy {
"type" : "TNAuthList",
"value" : "MAigxxxxxDE4SA=="
}
Optional parameters notBefore and notAfter should have a RFC 3339 timestamp format (2022-01-15T00:00:01Z
). If not set, certificate will be issued with the default lifespan of 1 year.
Example of the New Order request:
Copy POST https://stica.peeringhub.io/acme/new-order
Content-Type: application/jose+json
Content-Length: 572
{
"protected" : BASE64URL(
{
"alg" : "ES256",
"nonce" : "497685E333B24DEFBEDEB5D5A595FF28",
"url" : "https://stica.peeringhub.io/acme/new-order",
"kid" : "https://stica.peeringhub.io/acme/acct/6A1AD155B73D45448E7B832888C3EF54"
}
),
"payload" : BASE64URL(
{
"identifiers" : [{ "type" : "TNAuthList", "value" : "MAigBhYEODE4SA==" }],
"notBefore" : "2022-08-08T21:48:20Z",
"notAfter" : "2022-08-08T21:53:20Z"
}
),
"signature" : "<base64url-encoded signature>"
}
On success, ACME server should return a new ACME Order object, and ACME Order URL in the Location header:
Copy HTTP/1.1 201 Created
Location: https://stica.peeringhub.io/acme/order/0E22FC02933D42BC86A64425BB20D4B0
Replay-Nonce: 51029A7B34EC4F2280ECD2A6EC4E3C04
Content-Type: application/json; charset=utf-8
Content-Length: 395
{
"status" : "pending",
"expires" : "2022-08-09T21:49:43Z",
"identifiers" : [{ "type" : "TNAuthList", "value" : "MAigBhYEODE4SA==" }],
"notBefore" : "2022-08-08T21:48:20Z",
"notAfter" : "2022-08-08T21:53:20Z",
"error" : null,
"authorizations" : [ "https://stica.peeringhub.io/acme/authz/D55D90F2F6854D2CBB2E9C4A2E6EC4DB" ],
"finalize" : "https://stica.peeringhub.io/acme/order/0E22FC02933D42BC86A64425BB20D4B0/finalize"
}
ACME Client may get the ACME Order object by sending a POST request with an empty payload to the ACME order URL:
Copy POST https://stica.peeringhub.io/acme/order/0E22FC02933D42BC86A64425BB20D4B0
Content-Type: application/jose+json
Content-Length: 430
{
"protected" : BASE64URL(
{
"alg": "ES256",
"nonce": "B106476126104951AC9177221C508154",
"url": "https://stica.peeringhub.io/acme/order/0E22FC02933D42BC86A64425BB20D4B0",
"kid": "https://stica.peeringhub.io/acme/acct/6A1AD155B73D45448E7B832888C3EF54"
}
),
"payload" : "",
"signature" : "<base64url-encoded signature>"
}
ACME Order object should contain:
ACME Order Challenge URL in the "authorizations" array
CSR submission URL in the "finalize" parameter
The possible values of the ACME Order status are:
"pending" - waiting for challenge submission
"ready" - user has passed the challenge; waiting for CSR submission
"processing" - creating a certificate
"valid" - certificate is ready for downloading
"invalid" - indicates an error
On failure, the "error" parameter must contain a problem document in a format, described in RFC 7807. The full list of registered error types can be found in the IANA database: https://www.iana.org/assignments/acme/acme.xhtml
Challenge
After submitting a new order, ACME client must acquire ACME Order Challenge, using URL from "authorizations" array of ACME order object.
Copy POST https://stica.peeringhub.io/acme/authz/D55D90F2F6854D2CBB2E9C4A2E6EC4DB
Content-Type: application/jose+json
Content-Length: 430
{
"protected" : BASE64URL(
{
"alg": "ES256",
"nonce": "51029A7B34EC4F2280ECD2A6EC4E3C04",
"url": "https://stica.peeringhub.io/acme/authz/D55D90F2F6854D2CBB2E9C4A2E6EC4DB",
"kid": "https://stica.peeringhub.io/acme/acct/6A1AD155B73D45448E7B832888C3EF54"
}
),
"payload" : "",
"signature" : "<base64url-encoded signature>"
}
Server should reply with an ACME Challenge object:
Copy HTTP/1.1 200 OK
Replay-Nonce: 46660A480C68453EBB4553C46979B18D
Content-Type: application/json; charset=utf-8
Content-Length: 319
{
"status": "pending",
"expires": "2022-08-09T21:49:43Z",
"identifier": {
"type": "TNAuthList",
"value": "MAigBhYEODE4SA=="
},
"challenges": [
{
"type": "tkauth-01",
"tkauth-type": "atc",
"url": "https://stica.peeringhub.io/acme/authz/D55D90F2F6854D2CBB2E9C4A2E6EC4DB/0",
"token": "45C55E0C1F224377A2DC43915715F426",
"status": "pending"
}
]
}
ACME Challenge object must contain a submission URL, and the current status of the ACME Challenge, which can be one of:
"pending" - waiting for the challenge submission
"processing" - validating submitted data
"valid" - user has successfully passed the challenge
"invalid" - an error has occurred during challenge processing
If status is "invalid", the "error" parameter must identify the rejection reason.
The "url" parameter represents ACME Challenge Submission URL.
Challenge submission
To prove ownership of the STI-SP account, ACME client must submit a fresh SPC token to the ACME Challenge Submission URL.
SPC token is a JWT (RFC 7519), signed by the STI Policy Administrator (Iconectiv) with mandatory parameters in the payload:
CA flag (whether this SPC token is suitable for issuing End-Entity certificates, or for issuing CA certificates)
SHA256 fingerprint of the ACME Account key
SPC token payload example for regular (End-Entity) certificates:
Copy {
"exp": 1660523818,
"jti": "980b0430-1e88-4f0f-91e8-749ad9251851",
"atc": {
"tktype": "TNAuthList",
"tkvalue": "MAigBhYEODE4SA==",
"ca": false,
"fingerprint": "SHA256 D8:FC:D2:1E:52:7E:85:A5:DB:34:1F:0A:0A:67:17:55:70:9A:A1:50:34:16:BF:E6:E5:AB:AD:84:73:73:E8:A8"
}
}
ACME client must submit a SPC token to the Challenge submission URL:
Copy POST https://stica.peeringhub.io/acme/authz/D55D90F2F6854D2CBB2E9C4A2E6EC4DB/0
Content-Type: application/jose+json
Content-Length: 1236
{
"protected" : BASE64URL(
{
"alg": "ES256",
"nonce": "46660A480C68453EBB4553C46979B18D",
"url": "https://stica.peeringhub.io/acme/authz/D55D90F2F6854D2CBB2E9C4A2E6EC4DB/0",
"kid": "https://stica.peeringhub.io/acme/acct/6A1AD155B73D45448E7B832888C3EF54"
}
),
"payload" : BASE64URL(
{
"atc": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsIng1dSI6Imh0dHBzOi8vYXV0aGVudGljYXRlLWFwaS1zdGcuaWNvbmVjdGl2LmNvbS9kb3dubG9hZC92MS9jZXJ0aWZpY2F0ZS9jZXJ0aWZpY2F0ZUlkXzk4MTYwLmNydCJ9.eyJleHAiOjE2NjA2MDAyMTUsImp0aSI6IjdkOGYzY2VhLTEwMzUtNDA2OC1hMjg1LThkMzg3ODJkNmU4MSIsImF0YyI6eyJ0a3R5cGUiOiJUTkF1dGhMaXN0IiwidGt2YWx1ZSI6Ik1BaWdCaFlFT0RFNFNBPT0iLCJjYSI6ZmFsc2UsImZpbmdlcnByaW50IjoiU0hBMjU2IEQ4OkZDOkQyOjFFOjUyOjdFOjg1OkE1OkRCOjM0OjFGOjBBOjBBOjY3OjE3OjU1OjcwOjlBOkExOjUwOjM0OjE2OkJGOkU2OkU1OkFCOkFEOjg0OjczOjczOkU4OkE4In19.mfplwqUd3Usc6cRmduAQQrkJm8Va1dEDkkBB8ev5x5y7IOcwizpQ940PXkv007QQrcH2SdrJcEZzpJf2EY4l0A"
}
),
"signature" : "<base64url-encoded signature>"
}
On successful submission, ACME server should return 200 OK reply with the ACME Challenge object. Status of the ACME Challenge must be changed to "processing":
Copy HTTP/1.1 200 OK
Replay-Nonce: 642DE0D7551E496EADC181C6FC0D1A79
Content-Type: application/json; charset=utf-8
Content-Length: 307
{
"status": "processing",
"expires": null,
"identifier": {
"type": "TNAuthList",
"value": "MAigBhYEODE4SA=="
},
"challenges": [
{
"type": "tkauth-01",
"tkauth-type": "atc",
"url": "https://stica.peeringhub.io/acme/authz/D55D90F2F6854D2CBB2E9C4A2E6EC4DB/0",
"token": "45C55E0C1F224377A2DC43915715F426",
"status": "processing"
}
]
}
ACME client should poll ACME Challenge object, until status of the challenge changes. It's also possible to monitor status by polling ACME Order object.
CSR submission
Upon challenge validation, ACME Order status must be changed to "ready". Now ACME client should submit a CSR, which will be used to create a certificate.
The CSR for Service Providers must follow these rules:
CSR must contain a TNAuthList X509v3 extension (OID 1.3.6.1.5.5.7.1.26)
Country (DN: C) must be set to "US"
Organization (DN: O) must be non-empty
Common Name (DN: CN) parameter must contain the word "SHAKEN" and OCN
CSR cannot contain CRL Distribution Points others than the official PA CRL: https://authenticate-api.iconectiv.com/download/v1/crl
If CRL Distribution Points are not included in the CSR, they will be added automatically by the ACME server.
CSR example for Service Providers:
Copy Certificate Request:
Data:
Version: 3 (0x2)
Subject: C = US, O = My Company, CN = My Company SHAKEN 818H
Subject Public Key Info:
Public Key Algorithm: id-ecPublicKey
Public-Key: (256 bit)
pub:
04:e2:71:ce:0e:6c:a9:6e:77:ca:74:97:7e:23:16:
cc:b0:bc:0e:b4:9a:82:d1:f3:f2:b2:a2:85:bb:c7:
2c:b0:46:bb:93:1c:04:77:cf:5e:41:6f:94:7b:45:
33:7f:06:12:63:22:bf:6a:30:1f:13:da:c2:95:9f:
1f:5e:d8:d0:c6
ASN1 OID: prime256v1
NIST CURVE: P-256
Attributes:
Requested Extensions:
X509v3 Basic Constraints: critical
CA:FALSE
1.3.6.1.5.5.7.1.26:
0.....818H
X509v3 CRL Distribution Points:
Full Name:
URI:https://authenticate-api.iconectiv.com/download/v1/crl
CRL Issuer:
DirName:L = Bridgewater, ST = NJ, CN = STI-PA CRL, C = US, O = STI-PA
Signature Algorithm: ecdsa-with-SHA256
30:45:02:21:00:de:7f:3c:b2:81:ac:ab:df:ce:fb:47:02:34:
d2:4e:1b:da:32:cc:6f:e3:87:0f:20:ba:7a:fd:81:04:69:cb:
1a:02:20:53:70:5a:9f:20:de:56:bc:14:ea:9d:c8:5e:1a:04:
df:80:43:5e:25:9b:29:6d:33:a5:90:d1:ae:19:3f:8c:d8
The URL to upload CSR can be found in the "finalize" parameter of the ACME Order object.
Copy POST https://stica.peeringhub.io/acme/order/0E22FC02933D42BC86A64425BB20D4B0/finalize
Content-Type: application/jose+json
Content-Length: 1329
{
"protected" : BASE64URL(
{
"alg": "ES256",
"nonce": "7D36B55C9F9349269AD08024868D72F0",
"url": "https://stica.peeringhub.io/acme/order/0E22FC02933D42BC86A64425BB20D4B0/finalize",
"kid": "https://stica.peeringhub.io/acme/acct/6A1AD155B73D45448E7B832888C3EF54"
}
),
"payload" : BASE64URL(
{
"csr" : "MIIB5zCCAY0CAQIwQzELMAkGA1UEBhMCVVMxEzARBgNVBAoMCk15IENvbXBhbnkxHzAdBgNVBAMMFk15IENvbXBhbnkgU0hBS0VOIDgxOEgwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATicc4ObKlud8p0l34jFsywvA60moLR8_KyooW7xyywRruTHAR3z15Bb5R7RTN_BhJjIr9qMB8T2sKVnx9e2NDGoIHnMIHkBgkqhkiG9w0BCQ4xgdYwgdMwDAYDVR0TAQH_BAIwADAWBggrBgEFBQcBGgQKMAigBhYEODE4SDCBqgYDVR0fBIGiMIGfMIGcoD6gPIY6aHR0cHM6Ly9hdXRoZW50aWNhdGUtYXBpLXN0Zy5pY29uZWN0aXYuY29tL2Rvd25sb2FkL3YxL2NybKJapFgwVjEUMBIGA1UEBwwLQnJpZGdld2F0ZXIxCzAJBgNVBAgMAk5KMRMwEQYDVQQDDApTVEktUEEgQ1JMMQswCQYDVQQGEwJVUzEPMA0GA1UECgwGU1RJLVBBMAoGCCqGSM49BAMCA0gAMEUCIQDefzyygayr3877RwI00k4b2jLMb-OHDyC6ev2BBGnLGgIgU3BanyDeVrwU6p3IXhoE34BDXiWbKW0zpZDRrhk_jNg"
}
),
"signature" : "<base64url-encoded signature>"
}
On success, ACME server should return 200 OK with the ACME Order object. The status of the order must be changed to "processing".
Copy HTTP/1.1 200 OK
Replay-Nonce: 756289D54E5F41A08C8D6C3A38DCB4C2
Content-Type: application/json; charset=utf-8
Content-Length: 380
{
"status" : "processing",
"expires" : null,
"identifiers" : [{ "type" : "TNAuthList", "value" : "MAigBhYEODE4SA==" }],
"notBefore" : "2022-08-08T21:48:20Z",
"notAfter" : "2022-08-08T21:53:20Z",
"error" : null,
"authorizations" : [
"https://stica.peeringhub.io/acme/authz/D55D90F2F6854D2CBB2E9C4A2E6EC4DB"
],
"finalize" : "https://stica.peeringhub.io/acme/order/0E22FC02933D42BC86A64425BB20D4B0/finalize"
}
ACME client should poll ACME Order object until status of the order changes.
Certificate downloading
When ACME Order was successfully processed, status of the order should change to "valid", and URL to download the certificate must appear in the "certificate" parameter of the ACME Order object:
Copy {
"status": "valid",
"expires": "2022-08-15T21:49:43Z",
"identifiers": [
{
"type": "TNAuthList",
"value": "MAigBhYEODE4SA=="
}
],
"notBefore": "2022-08-08T21:48:20Z",
"notAfter": "2022-08-08T21:53:20Z",
"error": null,
"authorizations": [
"https://stica.peeringhub.io/acme/authz/D55D90F2F6854D2CBB2E9C4A2E6EC4DB"
],
"finalize": "https://stica.peeringhub.io/acme/order/0E22FC02933D42BC86A64425BB20D4B0/finalize",
"certificate": "https://stica.peeringhub.io/acme/cert/2AC5775167C04A34A140033CD5DF4088"
}
To download the certificate, ACME client must send a POST request with an empty payload to the Certificate URL:
Copy POST https://stica.peeringhub.io/acme/cert/2AC5775167C04A34A140033CD5DF4088
Content-Type: application/jose+json
Content-Length: 429
{
"protected" : BASE64URL(
{
"alg": "ES256",
"nonce": "B536FD57B6874F6AB0128D7F75AC57C8",
"url": "https://stica.peeringhub.io/acme/cert/2AC5775167C04A34A140033CD5DF4088",
"kid": "https://stica.peeringhub.io/acme/acct/6A1AD155B73D45448E7B832888C3EF54"
}
),
"payload" : "",
"signature" : "<base64url-encoded signature>"
}
HTTP/1.1 200 OK
Replay-Nonce: 5E8226C64D4A46D39E177E9A48A48757
Content-Type: application/pem-certificate-chain
Content-Length: 2250
-----BEGIN CERTIFICATE-----
MIIDBTCCAqugAwIBAgIRAKE+kaZYDgRX2HxVA0XC4hQwCgYIKoZIzj0EAwIwgYAx
CzAJBgNVBAYTAlVTMRcwFQYDVQQKDA5QZWVyaW5naHViIEluYzEiMCAGA1UECwwZ
Q2VydGlmaWNhdGlvbiBBdXRob3JpdGllczE0MDIGA1UEAwwrUGVlcmluZ2h1YiBJ
bmMgU0hBS0VOIEludGVybWVkaWF0ZSBDQSBERVYgMTAeFw0yMjA4MDgyMTQ4MjBa
Fw0yMjA4MDgyMTUzMjBaMEMxCzAJBgNVBAYTAlVTMRMwEQYDVQQKDApNeSBDb21w
YW55MR8wHQYDVQQDDBZNeSBDb21wYW55IFNIQUtFTiA4MThIMFkwEwYHKoZIzj0C
AQYIKoZIzj0DAQcDQgAE4nHODmypbnfKdJd+IxbMsLwOtJqC0fPysqKFu8cssEa7
kxwEd89eQW+Ue0UzfwYSYyK/ajAfE9rClZ8fXtjQxqOCAUAwggE8MA4GA1UdDwEB
/wQEAwIHgDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSZPHgWeG3E41G0jPamaOCs
qzdnwzAfBgNVHSMEGDAWgBQi3nU+1F4Iav8BHOp948c5U0KXBTAXBgNVHSAEEDAO
MAwGCmCGSAGG/wkBAQEwFgYIKwYBBQUHARoECjAIoAYWBDgxOEgwgaoGA1UdHwSB
ojCBnzCBnKA+oDyGOmh0dHBzOi8vYXV0aGVudGljYXRlLWFwaS1zdGcuaWNvbmVj
dGl2LmNvbS9kb3dubG9hZC92MS9jcmyiWqRYMFYxFDASBgNVBAcMC0JyaWRnZXdh
dGVyMQswCQYDVQQIDAJOSjETMBEGA1UEAwwKU1RJLVBBIENSTDELMAkGA1UEBhMC
VVMxDzANBgNVBAoMBlNUSS1QQTAKBggqhkjOPQQDAgNIADBFAiEA0PT6Q4T+MmpJ
LoU+L72OaxbeyR4kJ8CtxcIGi0zC3SYCIF/BeD/1rlmHz9tsFi6npCMrtVJW1SQi
Dn7X5e9EsoDh
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDHzCCAsSgAwIBAgIQcuK74nt/PaLZWsRJjaJ2KTAKBggqhkjOPQQDAjB2MQsw
CQYDVQQGEwJVUzEXMBUGA1UECgwOUGVlcmluZ2h1YiBJbmMxIjAgBgNVBAsMGUNl
cnRpZmljYXRpb24gQXV0aG9yaXRpZXMxKjAoBgNVBAMMIVBlZXJpbmdodWIgSW5j
IFNIQUtFTiBST09UIENBIERFVjAeFw0yMjA0MjUyMzQ4MjBaFw0zMjA0MjIyMzQ4
MjBaMIGAMQswCQYDVQQGEwJVUzEXMBUGA1UECgwOUGVlcmluZ2h1YiBJbmMxIjAg
BgNVBAsMGUNlcnRpZmljYXRpb24gQXV0aG9yaXRpZXMxNDAyBgNVBAMMK1BlZXJp
bmdodWIgSW5jIFNIQUtFTiBJbnRlcm1lZGlhdGUgQ0EgREVWIDEwWTATBgcqhkjO
PQIBBggqhkjOPQMBBwNCAARydOBhM+X8nK9TqzW57TVn+ulVnSLWERRAlYCWQGkA
jMBsmQYI5Aw3ULim76WEzyZUJKOyCYLPcyaiqKa7It/Qo4IBJzCCASMwDgYDVR0P
AQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCLedT7UXghq/wEc
6n3jxzlTQpcFMB8GA1UdIwQYMBaAFCdr86ngPMbyxZYnJzBTcRR6B5CvMBcGA1Ud
IAQQMA4wDAYKYIZIAYb/CQEBATCBpgYDVR0fBIGeMIGbMIGYoDqgOIY2aHR0cHM6
Ly9hdXRoZW50aWNhdGUtYXBpLmljb25lY3Rpdi5jb20vZG93bmxvYWQvdjEvY3Js
olqkWDBWMQswCQYDVQQGEwJVUzELMAkGA1UECAwCTkoxFDASBgNVBAcMC0JyaWRn
ZXdhdGVyMQ8wDQYDVQQKDAZTVEktUEExEzARBgNVBAMMClNUSS1QQSBDUkwwCgYI
KoZIzj0EAwIDSQAwRgIhAKuc7n7u9ukR+BnJFtNUt3y0nAsxaBjZ06CWfneMmtvp
AiEA//1yCI+VNLXLnmutrq83R3x3m8bJnobZj7A0/PM3ZQI=
-----END CERTIFICATE-----
Note, that the Certificate URL is not public, and can only be accessed with a signed POST request.
Review the certificate
The created certificate must have:
A valid lifespan (notBefore and notAfter parameters)
The requested Common Name
CRL extension with URL of the official PA CRL
Basic Constraints extension, which identifies the type of the certificate (End-Entity or SCA)
2.16.840.1.114569.1.1.1 certificate policy
Copy Certificate:
Data:
Version: 3 (0x2)
Serial Number:
a1:3e:91:a6:58:0e:04:57:d8:7c:55:03:45:c2:e2:14
Signature Algorithm: ecdsa-with-SHA256
Issuer: C = US, O = Peeringhub Inc, OU = Certification Authorities, CN = Peeringhub Inc SHAKEN Intermediate CA
Validity
Not Before: Aug 8 21:48:20 2022 GMT
Not After : Aug 8 21:53:20 2022 GMT
Subject: C = US, O = My Company, CN = My Company SHAKEN 818H
Subject Public Key Info:
Public Key Algorithm: id-ecPublicKey
Public-Key: (256 bit)
pub:
04:e2:71:ce:0e:6c:a9:6e:77:ca:74:97:7e:23:16:
cc:b0:bc:0e:b4:9a:82:d1:f3:f2:b2:a2:85:bb:c7:
2c:b0:46:bb:93:1c:04:77:cf:5e:41:6f:94:7b:45:
33:7f:06:12:63:22:bf:6a:30:1f:13:da:c2:95:9f:
1f:5e:d8:d0:c6
ASN1 OID: prime256v1
NIST CURVE: P-256
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Key Identifier:
99:3C:78:16:78:6D:C4:E3:51:B4:8C:F6:A6:68:E0:AC:AB:37:67:C3
X509v3 Authority Key Identifier:
keyid:22:DE:75:3E:D4:5E:08:6A:FF:01:1C:EA:7D:E3:C7:39:53:42:97:05
X509v3 Certificate Policies:
Policy: 2.16.840.1.114569.1.1.1
1.3.6.1.5.5.7.1.26:
0.....818H
X509v3 CRL Distribution Points:
Full Name:
URI:https://authenticate-api.iconectiv.com/download/v1/crl
CRL Issuer:
DirName:L = Bridgewater, ST = NJ, CN = STI-PA CRL, C = US, O = STI-PA
Signature Algorithm: ecdsa-with-SHA256
30:45:02:21:00:d0:f4:fa:43:84:fe:32:6a:49:2e:85:3e:2f:
bd:8e:6b:16:de:c9:1e:24:27:c0:ad:c5:c2:06:8b:4c:c2:dd:
26:02:20:5f:c1:78:3f:f5:ae:59:87:cf:db:6c:16:2e:a7:a4:
23:2b:b5:52:56:d5:24:22:0e:7e:d7:e5:ef:44:b2:80:e1