让nginx支持多证书,nginx必须支持TLS SNI,使用命令/www/wdlinux/nginx/sbin/nginx 很明显,不支持TLS SNI,需要重新编译openssl和nginx。 openssl: ./config enable-tlsext nginx: ./configure --prefix=/workspace/soft/nginx_ssl2 --with-openssl=../openssl-1.0.1g/ --with-http_ssl_module --with-http_stub_status_module 奇怪的是,openssl不能指定prefix, 否则nginx make的时候会报告错误。原因: nginx make的时候执行: cd /workspace/soft/openssl \ 上面例子使用的是:openssl-0.9.8l,如果使用0.9.8j后版本,openssl直接不需要config,make,make install,直接nginx ssl指向此目录即可,因为nginx也会自动编译openssl的。 从0.9.8f版本开始,OpenSSL通过“--enable-tlsext”配置选项加入SNI支持,从0.9.8j版本开始,此选项成为默认选项。 参考: http://www.wdlinux.cn/bbs/viewthread.php?tid=7833 http://blog.csdn.net/cccallen/article/details/6672451 http://www.openssl.org/source/ http://nginx.org/cn/docs/http/configuring_https_servers.html http://xfeng.me/nginx-enable-tls-sni-support/ http://nginx.org/cn/docs/http/configuring_https_servers.html http://inotgaoshou.iteye.com/blog/962946:即将这些程序编译到nginx里面去,这样nginx启动时就不会采用动态加载的方式去load。 http://openwares.net/misc/server_name_indication.html:服务器名字指示SNI(Server Name Indication) 后续: 后来重新安装了新的环境,按照上面的部署死活不成;用本机的hosts测试没问题,一切换到dns上就出问题; 后来竟然发现必须./config & make & make install 安装openssl(环境变量不需配置),切换到dns就可以了; (责任编辑:IT) |