В вашем случае проверка имени хоста по умолчанию не подходит. Возможно, вы захотите попробовать выполнить проверку отпечатков пальцев. Сначала получите отпечатки каждого сертификата (openssl x509 -fingerprint). Допустим, у вас есть одноранговый узел A и одноранговый узел B с отпечатками пальцев A и B соответственно.
На стороне A на раннем этапе в вашем скрипте вы сделаете следующие вызовы:
from M2Crypto import SSL
SSL.Connection.clientPostConnectionCheck = SSL.Checker(peerCertHash='fingerprint B')
На стороне одноранговой сети B вы делаете то же самое, за исключением использования отпечатка пальца A. Теперь средство проверки сертификатов будет проверять только на соответствие отпечатков пальцев и не будет выполнять дальнейшие проверки.
Этот подход означает, что он отменяет проверку пост-соединения для ALL SSL-соединений, поэтому он не подходит во всех случаях использования. Если вы можете контролировать создание объекта SSL.Connection, вы также можете вызывать set_post_connection_check_callback () для каждого экземпляра, что позволит при необходимости использовать другую программу проверки.