CertificateIssuer Property  
 

Returns information about the organization that issued the server certificate.

Syntax

object.CertificateIssuer

Remarks

The CertificateIssuer property returns a string that contains information about the organization that issued the server certificate. 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 issuer'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 issuer or the issuer's 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 name of the company who issued the server certificate:

Dim strIssuer As String
Dim strCompanyName As String

strIssuer = FtpClient1.CertificateIssuer
If Len(strIssuer) = 0 Then
     MsgBox "A secure connection has not been established"
Else
     strCompanyName = GetCertNameValue(strIssuer, "O")
     MsgBox "This certificate was issued by " & strCompanyName
End If

See Also

CertificateExpires Property, CertificateIssued Property, CertificateStatus Property, CertificateSubject Property, Secure Property