在 CentOS 6 系统 为 apache 不同网站配置不同SSL证书(SNI)

云友“fjfyfh ”希望能看到在CentOS 6系统里为apache站点配置https的例子,所以写此帖。

环境:CentOS 6.8 64位,apache 2.2

目的:为两个站点(yun.anqun.org, portal.anqun.org)配置https访问。

前提:在阿里云申请下载了相应的SSL证书。

过程:

1.执行以下的命令,安装好apache及mod_ssl模块
yum install httpd mod_ssl
bbs-aliyun-dongshan3-304549-1.png

bbs-aliyun-dongshan3-304549-2.png

2.将站点的SSL证书上传到相应的目录,如本例的 yun_anqun_org.pem 上传到了 /etc/pki/tls/certs/ 目录,yun_anqun_org.key 上传到了 /etc/pki/tls/private/ 目录,需要留意,key文件仅root账户可读写
bbs-aliyun-dongshan3-304549-3.png

3.编辑站点SSL配置文件, /etc/httpd/conf.d/ssl.conf ,如本例,删除了原有默认的SSL 虚拟站点配置内容,增加了以下的SSL 虚拟站点内容:

##
## SSL Virtual Host Context
##
NameVirtualHost *:443
<VirtualHost *:443>
  ServerName yun.anqun.org
  DocumentRoot /var/www/html/yun.anqun.org
  SSLEngine on
  SSLProtocol all -SSLv2
  SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
  SSLCertificateFile "/etc/pki/tls/certs/yun_anqun_org.pem"
  SSLCertificateKeyFile "/etc/pki/tls/private/yun_anqun_org.key"
</VirtualHost>
<VirtualHost *:443>
  ServerName portal.anqun.org
  DocumentRoot /var/www/html/portal.anqun.org
  SSLEngine on
  SSLProtocol all -SSLv2
  SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
  SSLCertificateFile "/etc/pki/tls/certs/portal_anqun_org.pem"
  SSLCertificateKeyFile "/etc/pki/tls/private/portal_anqun_org.key"
</VirtualHost>

bbs-aliyun-dongshan3-304549-4.png

4.重启apache服务后,在火狐浏览器浏览测试,显示正常
bbs-aliyun-dongshan3-304549-5.png

bbs-aliyun-dongshan3-304549-6.png

参考:https://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI

为阿里云ECS(CentOS 5)配置IPv6隧道地址

云友“ap6554s5w”希望 能在CentOS 5系统里配置IPv6地址,所以写此帖。

环境:ECS“经典网络”类型(网友“ifaceparty”提醒:如果是“专有网络”,需要将HE配置隧道地址命令中的IPv4地址修改为ECS实例的内网地址),CentOS 5.11 64位系统。

注意:如是苹果APP上架申请因无法IPv6-only访问被拒,请重点检查APP代码,苹果公司的参考文档并没有要求APP服务需要有IPv6地址:https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html

1.CentOS 5.11 64位系统,默认没有启用IPv6地址

2.编辑 /etc/sysctl.conf 文件,将其中三条禁用IPv6的设置更改为:

net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
````
 
3.编辑文件,/etc/modprobe.d/disable_ipv6.conf,将其中的两行都注释掉:[/code] 

alias net-pf-10 off

options ipv6 disable=1

![bbs-aliyun-dongshan3-304532-1.png][1]
 
4.编辑文件,/etc/sysconfig/network,将其中的 NETWORKING_IPV6=no 改为 NETWORKING_IPV6=yes 
NETWORKING_IPV6=yes
![bbs-aliyun-dongshan3-304532-2.png][2] 
 
5.重启系统,以让更改生效。系统重启后,运行 ifconfig 命令,可以看到IPv6的地址  
 
7.执行 HE 隧道地址配置例子中的 Linux-net-tools 命令,如本例是: 

ifconfig sit0 up
ifconfig sit0 inet6 tunnel ::216.218.221.6
ifconfig sit1 up
ifconfig sit1 inet6 add 2001:470:18:401::2/64
route -A inet6 add ::/0 dev sit1

![bbs-aliyun-dongshan3-304532-3.png][3] 
 
8.安装 nginx 后,启动 nginx ,可以看到在IPv6(:::80)里监听使用了  
![bbs-aliyun-dongshan3-304532-4.png][4] 
 
9.在其它IPv6的系统上,用 curl 测试 IPv6 域名和IP地址站点内容,正常。实践中,访问IPv6的网站内容可能较慢,这可能是因为提供隧道地址的网络与国内连接较慢 

curl 'http://yun.anqun.org' -so - | grep -iPo '(?<=)(.*)(?=)'
curl [2001:470:18:401::2] -so - | grep -iPo '(?<=)(.*)(?=)'
curl -6 'http://ipv6.anqun.org' -so - | grep -iPo '(?<=)(.*)(?=)'

![bbs-aliyun-dongshan3-304532-5.png][5] 
 
参考:https://tunnelbroker.net/ 


  [1]: https://liujia.anqun.org/usr/uploads/2019/06/09/802672251359026.png
  [2]: https://liujia.anqun.org/usr/uploads/2019/06/09/80268753090719.png
  [3]: https://liujia.anqun.org/usr/uploads/2019/06/09/80268887271176.png
  [4]: https://liujia.anqun.org/usr/uploads/2019/06/09/802682848492264.png

在 Windows 2008 系统为 phpstudy apache 不同网站配置不同SSL证书(SNI)

有云友提问,想为 phpstudy 套件里的 apache 配置SSL证书安全访问。

环境:Windows 2008 32位系统 , phpstudy 2016(apache 2.4)

过程:

1.下载,解压,初始化好 phpstudy
bbs-aliyun-dongshan3-304092-1.png

2.将下载好的证书放到apache目录下,如我将yun.anqun.org的SSL证书保存在apache/conf/ssl/yun里
bbs-aliyun-dongshan3-304092-2.png

3.通过phpstudy的管理菜单,编辑 httpd.conf 配置文件,将约在489行的,关于ssl配置的文件启用;
Include conf/extra/httpd-ssl.conf
bbs-aliyun-dongshan3-304092-3.png

4.编辑 httpd-ssl.conf 文件,按实际情况配置虚拟主机的ssl内容,如本例里的 yun.anqun.org 及 portal.anqun.org 的简要配置内容如下:

##
## SSL Virtual Host Context
##
<VirtualHost *:443>
        SSLEngine on
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
        SSLCertificateFile      "D:\phpStudy\Apache\conf\ssl\yun\213949634960268.pem"
        SSLCertificateKeyFile   "D:\phpStudy\Apache\conf\ssl\yun\213949634960268.key"
        ServerName      "yun.anqun.org"
        DocumentRoot    "C:\www\yun.anqun.org"
</VirtualHost>
<VirtualHost *:443>
        SSLEngine on
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
        SSLCertificateFile      "D:\phpStudy\Apache\conf\ssl\portal\213466734260268.pem"
        SSLCertificateKeyFile   "D:\phpStudy\Apache\conf\ssl\portal\213466734260268.key"
        ServerName      "portal.anqun.org"
        DocumentRoot    "C:\www\portal.anqun.org"
</VirtualHost>

bbs-aliyun-dongshan3-304092-4.png

5.保存配置文件后,重启apache,在火狐浏览器里测试访问,显示结果正常
bbs-aliyun-dongshan3-304092-5.png

bbs-aliyun-dongshan3-304092-6.png

参考:https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html

在 Debian 8系统 为 nginx 不同网站配置不同SSL证书(SNI)

看到有云友想为站点配置https访问,本例实践一下:

环境:Debian 8 64位,nginx

目的:为两个站点(yun.anqun.org, portal.anqun.org)配置https访问。

前提:已经安装好了Web(nginx)和在阿里云申请下载了相应的SSL证书。

过程:

1.Debian 8 系统软件库中的nginx支持SNI功能
bbs-aliyun-dongshan3-303963-1.png

2.将站点SSL证书上传到合适的目录,如将.pem文件上传到 /etc/ssl/certs , 将.key文件上传到 /etc/ssl/private 目录。一般需将key文件设置为仅root可读写。
bbs-aliyun-dongshan3-303963-2.png

3.编辑站点yun.anqun.org的配置文件,增加SSL监听端口及证书路径,如本例站点yun.anqun.org的配置文件内容如下:

server {
       listen 80;
       listen 443 ssl;
      ssl_certificate   /etc/ssl/certs/yun_anqun_org.pem;
      ssl_certificate_key /etc/ssl/private/yun_anqun_org.key;
      ssl_session_timeout 5m;
      ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_prefer_server_ciphers on;
          
       server_name yun.anqun.org;
       root /var/www/yun.anqun.org;
       index index.html;
}

bbs-aliyun-dongshan3-303963-3.png

4.重新加载 nginx 服务,在Chrome浏览器里测试,正常显示https站点内容
bbs-aliyun-dongshan3-303963-4.png

bbs-aliyun-dongshan3-303963-5.png

参考:http://nginx.org/en/docs/http/configuring_https_servers.html

在Windows 2012 web服务器IIS 为不同网站配置不同SSL证书(SNI)

现在阿里云可以免费提供可用于设置https站点的SSL证书,且新版本的Web服务端通过SNI功能支持在同一个IP里设置多个https站点。

本例以Windows 2012 Web服务器IIS,为两个站点 portal.anqun.org 和 yun.anqun.org 配置(绑定)https。

前提条件:假设服务器已经安装好了Web服务角色,且新建好了站点; 已经从阿里云证书服务中下载到了相应的适合“IE8”的SSL证书。

步骤:

1.在IIS主页,点击“服务器证书”图标
bbs-aliyun-dongshan3-303904-1.png

2.在“服务器证书”页中,鼠标右击,选择“导入”,弹出“导入证书”对话框
bbs-aliyun-dongshan3-303904-2.png

bbs-aliyun-dongshan3-303904-3.png

3.在“导入证书”对话框里选择准备好的.pfx文件
bbs-aliyun-dongshan3-303904-4.png

4.完成导入后,会显示成功导入的证书信息
bbs-aliyun-dongshan3-303904-5.png

5.转到相应的站点,如鼠标右击 portal.anqun.org ,选择“编辑绑定”
bbs-aliyun-dongshan3-303904-6.png

6.在“网站绑定”对话框里,点击“添加”按钮
bbs-aliyun-dongshan3-303904-6.png

7.在“编辑网站绑定”对话框里,选择“https”的类型,勾选“需要服务器名称指示”,在“SSL证书”里选择相应的证书
bbs-aliyun-dongshan3-303904-8.png

bbs-aliyun-dongshan3-303904-9.png

8.在火狐浏览器里分别浏览https站点,显示正常
bbs-aliyun-dongshan3-303904-10.png

参考:https://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-server-name-indication-sni-ssl-scalability