Returns information about the organization that the server
certificate was issued to.
Syntax
object.CertificateSubject
Remarks
The CertificateSubject property returns a string that
contains information about the organization that the server
certificate was issued for. The string value is a comma separated
list of tagged name and value pairs. In the nomenclature of the X.500
standard, each of these pairs are called a relative distinguished
name (RDN), and when concatenated together, forms the subject's
distinguished name (DN). For example:
C=US, O="RSA Data Security, Inc.", OU=Secure
Server Certification Authority
To obtain a specific value, such as the name of the subject's
company or country, the application must parse the string returned by
this property. Some of the common tokens used in the distinguished
name are:
| Name |
Description |
| C |
The ISO standard two character country code |
| S |
The name of the state or province |
| L |
The name of the city or locality |
| O |
The name of the company or organization |
| OU |
The name of the department or organizational unit |
| CN |
The common name; with X.509 certificates, this is the
domain name of the site the certificate was issued for |
This property will return an empty string if a secure connection
has not been established with the server.
Data Type
String
Example
The following example demonstrates how to extract the value of a
relative distinguished name token:
Function GetCertNameValue(ByVal strValue As String, ByVal strFieldName As String) As String
Dim strFieldValue As String
Dim cchValue As Integer, cchFieldName As Integer
Dim nOffset As Integer
GetCertNameValue = ""
cchValue = Len(strValue)
cchFieldName = Len(strFieldName)
If cchValue = 0 Or cchFieldName = 0 Then
Exit Function
End If
nOffset = InStr(strValue, strFieldName & "=")
If nOffset > 0 Then
'
' If the field name was found in the string, then
' remove everything to the left of the token from
' the string
'
strFieldValue = Right(strValue, cchValue - (nOffset + cchFieldName))
'
' If the value is quoted, then strip off the leading
' quote and look for the ending quote in the string;
' otherwise look for the comma that marks the end of
' the field name/value pair
'
If Left(strFieldValue, 1) = Chr(34) Then
strFieldValue = Right(strFieldValue, Len(strFieldValue) - 1)
nOffset = InStr(strFieldValue, Chr(34))
Else
nOffset = InStr(strFieldValue, ",")
End If
'
' If the offset is 0, then the name/value pair is
' the last token in the string; otherwise, remove
' everything to the right of that position
'
If nOffset > 0 Then
strFieldValue = Left(strFieldValue, nOffset - 1)
End If
GetCertNameValue = strFieldValue
End If
End Function
This function could then be used to return the domain name that
the server certificate was issued for:
Dim strSubject As String
Dim strDomainName As String
strSubject = ImapClient1.CertificateSubject
If Len(strSubject) = 0 Then
MsgBox "A secure connection has not been established"
Else
strDomainName = GetCertNameValue(strSubject, "CN")
MsgBox "This certificate was issued for " & strDomainName
End If
See Also
CertificateExpires Property,
CertificateIssued Property,
CertificateIssuer Property,
CertificateStatus Property,
Secure Property
|