Безопасный способ определить, равны ли два сертификата, - сравнить их двоичное представление. В реализации Bouncy Castle и Sun реализован метод getEncoded
. Вы можете сравнить их с массивами # равно.
Вам следует избегать сравнения строк SubjectDN или IssuerDN, вполне возможно, что представление отличается, даже если на двоичном уровне они совершенно равны. Мне пришлось усвоить этот трудный путь при взаимодействии с .NET - имена отдельных относительных отличительных имен (таких как CN, O, OU ...) отличались для более экзотических RDN. Мой совет - оставаться на бинарном уровне для сравнения, сложные высокоуровневые сравнения подвержены ошибкам и их сложнее поддерживать.