1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 一台服务器配置多台ssl虚拟主机 同ip多域名虚拟主机SSL如何配置-SNI

一台服务器配置多台ssl虚拟主机 同ip多域名虚拟主机SSL如何配置-SNI

时间:2019-10-06 17:29:41

相关推荐

一台服务器配置多台ssl虚拟主机 同ip多域名虚拟主机SSL如何配置-SNI

1、Server Name Indication(服务器名称指示)

以前一直听说基于域名的虚拟主机上只能使用同一张证书以配置SSL,其他域名会提示证书错误,或者去购买昂贵的多域名证书,直到无意中看到linode的文章:

服务器名称指示(Server Name Indication 简称 SNI)是一个扩展的TLS计算机联网协议,这允许在握手过程开始时通过客户端告诉正在连接的服务器的主机名称。允许在相同的IP地址和TCP端口号的服务器上使用多个证书,而不必所有网站都使用同一个证书。在概念上等同于HTTP/1.1基于域名的虚拟主机,只不过这是在HTTPS上实现的。

直接上设置:

1、编辑f(Debian 和 Ubuntu系统可以在/usr/lib/ssl/f找到),在HOME条目前加入

SAN="email:support@"

修改以匹配你的域名

2、在[ v3_req ] 和[ v3_ca ]节后面加上subjectAltName=${ENV::SAN} 该语句指示OpenSSL,如果电子邮件地址默认支持的SSL证书没有提供其它的替代名称,环境变量“SAN”将被读取,以获得应视为有效新证书备用DNS名称的列表。(拗口) 3、服务器shell提示符下输入 export SAN="DNS:, DNS:, DNS:, DNS:" 声明你希望的证书中包含的域名,为方便起见,这里包括每个站点基础域(这样可以防止用户不输入“www”的部分,否则将发生错误)。

4、

apt-get update

apt-get upgrade

apt-get install openssl

mkdir /etc/ssl/localcerts

#发出以下命令生成证书本身。请注意,此命令应该在一行上发出

openssl req -new -x509 -sha256 -days 365 -nodes -out /etc/ssl/localcerts/apache.pem -keyout /etc/ssl/localcerts/apache.key

#生成证书请求文件

openssl req -new -key /etc/ssl/localcerts/apache.key -out /etc/ssl/localcerts/apache.csr

#不建议输入密码,否则apache启动时会让输入密码,比较麻烦,当然也可以搞定。

5、访问/ 依次进行域名认证(Validations Wizard)、证书签发(Certificates Wizard),会获得证书链(1_root_bundle.crt)和证书(.crt),有效期一年。其实startssl本身免费证书支持5个域名!

6、设置apache

SSLEngine On

......

ServerAdmin support@

ServerName

ServerAlias

DocumentRoot /var/www//ssl/

SSLCertificateFile /etc/ssl/localcerts/.crt SSLCertificateKeyFile /etc/ssl/localcerts/apache.key SSLCertificateChainFile /etc/ssl/localcerts/1_root_bundle.crt

LogLevel warn

ErrorLog /var/www//log/error_ssl.log

CustomLog /var/www//log/access_ssl.log combined

其他虚拟主机同上设置。

在服务器端 openssl 支持SNI,编译的时候要加上–enable-tlsext,不过从 0.9.8j 版本开始编译的时候默认会加。

证书申请成功

7、SSL安全设置

#禁用 SSLv2 and SSLv3,防止POODLE漏洞。

SSLProtocol All -SSLv2 -SSLv3

#使用安全的Cipher

SuiteSSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH

#如果想兼容XP/IE6 ,请使用以下的配置

Cipher SuiteSSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4

也可以如下设置

SSLCipherSuite ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL

这么多格式,也没有像支付宝有那么多需要保密数据,随他了。

Forward Secrecy & Diffie Hellman Ephemeral Parameters ,如果你用的 Apache 2.4.8以上 OpenSSL 1.0.2 或以上版本,可以运行以下命令

cd /etc/ssl/localcerts

openssl dhparam -out dhparam.pem 4096然后将以下代码添加到网站配置文件 SSLOpenSSLConfCmd DHParameters "/etc/ssl/localcerts/dhparam.pem"

慎用,我apache2.4.7直接跑到cpu100%

最后我们的apache主配置文件可能是下面这样的,你也许要到/etc/apache2/mods-enabled/ssl.conf文件里面找到如下设置。

......

SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"

SSLHonorCipherOrder on

SSLCompression off

SSLProtocol All -SSLv2 -SSLv3SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4

......

8、

不要忘记重启apache

sudo service apache2 reatart

2、一时手痒,服务器基本被百度机器人搞死,想想也是,李世石都不是对手。以下是apache日志节选

/access.log

183.60.235.17 - - [11/Mar/:15:42:30 +0800] "GET /archives/ HTTP/1.1" 200 11297 "-" "Baidu-YunGuanCe-SLABot()"

183.61.236.16 - - [11/Mar/:15:42:30 +0800] "GET /archives/ HTTP/1.1" 200 11297 "-" "Baidu-YunGuanCe-SLABot()"

117.34.28.13 - - [11/Mar/:15:42:31 +0800] "GET /archives/ HTTP/1.1" 200 11297 "-" "Baidu-YunGuanCe-SLABot()"

(此处略去114666条......)

119.167.246.14 - - [14/Mar/:20:23:03 +0800] "GET /archives/ HTTP/1.1" 200 11297 "-" "Baidu-YunGuanCe-SLABot()"

117.27.149.14 - - [14/Mar/:20:23:03 +0800] "GET /archives/ HTTP/1.1" 200 11297 "-" "Baidu-YunGuanCe-SLABot()"

183.61.236.16 - - [14/Mar/:20:23:03 +0800] "GET /archives/ HTTP/1.1" 200 11297 "-" "Baidu-YunGuanCe-SLABot()"

117.34.28.14 - - [14/Mar/:20:23:03 +0800] "GET /archives/ HTTP/1.1" 200 11297 "-" "Baidu-YunGuanCe-SLABot()"

183.60.235.17 - - [14/Mar/:20:23:04 +0800] "GET /archives/ HTTP/1.1" 200 11297 "-" "Baidu-YunGuanCe-SLABot()"

User-Agent:Baidu-YunGuanCe-SLABot()可用性检测User-Agent:Baidu-YunGuanCe-ScanBot()安全检测User-Agent:Baidu-YunGuanCe-PerfBot()速度检测User-Agent:Baidu-YunGuanCe-VSBot()认证服务

来源:

3、i’m coming back.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。