BIO_set_conn_hostname

非セキュアな場合は、BIO_new_connectで接続先ホスト名とポートを指定していたが、セキュアな場合に、BIO_new_ssl_connectにはSSL_CTX型ポインタしか渡せないため、BIO_set_conn_hostnameを使う。

bio_set_conn_hostname(3): connect BIO - Linux man page

BIO_set_conn_hostname.cで、

BIO_set_conn_hostnameで、bioに"bgstation0.com:443"をセットする。
これでBIO_do_connectに成功すれば、接続できていることを確認できる。

$ vi BIO_set_conn_hostname.c 
$ gcc -o BIO_set_conn_hostname BIO_set_conn_hostname.c -lssl -lcrypto
$ ./BIO_set_conn_hostname ctx = 012ae820
SSL_CTX_load_verify_locations success!
BIO_new_ssl_connect success! bio = 012b1090
ssl = 012b1150
ssl_mode = 00000000
ssl_mode = 00000004
SSL_MODE_AUTO_RETRY
BIO_do_connect success! bio = 012b1090
$

接続できた。

Sample/openssl/BIO_set_conn_hostname/BIO_set_conn_hostname/src/BIO_set_conn_hostname at master · bg1bgst333/Sample · GitHub