如何使用openssl配置文件实现SNI?

时间:2019-04-09 08:28:57

标签: c++ c ssl openssl sni

我已经使用OpenSSL实现了SNI,但没有使用OpenSSL配置文件(cnf​​)。我正在加载服务器SSL_CTX,并执行以下操作:

 FILE *fp;
 CONF *cnf = NULL;
 long eline;

 fp = fopen("/somepath/app.cnf", "r");
 if (fp == NULL) {
     fprintf(stderr, "Error opening configuration file\n");
     /* Other missing configuration file behaviour */
 } else {
     cnf = NCONF_new(NULL);
     if (NCONF_load_fp(cnf, fp, &eline) == 0) {
         fprintf(stderr, "Error on line %ld of configuration file\n", eline);
         ERR_print_errors_fp(stderr);
         /* Other malformed configuration file behaviour */
     } else if (CONF_modules_load(cnf, "appname", 0) <= 0) {
         fprintf(stderr, "Error configuring application\n");
         ERR_print_errors_fp(stderr);
         /* Other configuration error behaviour */
     }
     fclose(fp);
     NCONF_free(cnf);
 }

它可以正常工作,但是现在我正在尝试使用OpenSSL配置文件实现服务器端SNI,但我不知道如何获取所需的信息。我看过How to implement Server Name Indication (SNI),这是没有openssl配置文件的很好解释。但这不适用于文件。

如何确定服务器是否请求了证书?也许openssl本身会提供适当的证书?

0 个答案:

没有答案