https与http的访问,应对苹果ATS验证问题

为应对2017年1月1日苹果ATS的问题,微信、微博等等APP要求挂载的网页必须https访问,需要添加ssl认证。

一、SSL认证

选取了阿里云提供的免费SSL,使用期限为一年。电话咨询阿里客服,免费版SSL可以通过苹果的ATS验证。

登录阿里云进入管理控制台,找到云盾-证书服务

购买证书,选择免费DV SSL,DV是个人申请证书,品牌为Symantec,只能选择一个域名,不包括通配符

支付

支付成功后进入证书管理

补全证书

输入要认证的域名,因为是免费版,所以要详细到子域名,不能填写主域名加通配符的形式。提交之后域名不能进行修改,仔细核对下

填写个人信息,域名验证类型可以选择DNS和文件两种方式,DNS验证需要在您申请的域名下添加解析一个域名,验证成功之后即可删除,如果你的域名解析绑定在阿里云的云解析中,勾选下,授权系统会自动完成验证。文件验证则需要在域名指向的文件夹下添加一个文件,验证成功之后即可删除。

1、DNS验证

使用系统生成CSR,用系统生成可以在阿里的后台直接获取所需的秘钥文件,不用再怕丢失私钥了,什么时候需要什么时候下载,然后就可以提交审核了

点击进度,提示未完成域名授权验证,需要添加一条DNS 的记录

将这条记录添加进你的网站解析中,记录类型选择CHAME

添加完成后就可以等待认证通过了,应该会很快,半小时内就通过了。

2、文件验证

阿里建议windows系统和使用阿里oss服务器的使用DNS,经验证,windows系统并不影响文件验证的方式

系统生成CSR,然后提交审核。

查看进度,弹出提示框,按提示框中的操作进行。

首先下载fileauth.htm文件,不要编辑该文件,然后将文件上传至你申请域名指向的文件夹下的隐藏文件夹/.well-known/pki-validation/,如果没有就自己创建文件夹

系统以ubuntu,apache服务器为例

查看sudo nano /etc/apache2/sites-enabled/000-default.conf文件

blog.rainbowz.cn指向的文件路径为/var/www/html/wordpress

进入文件wordpress:  cd /var/www/html/wordpress/

没有发现文件夹

创建文件夹/.well-known/pki-validation/

mkdir .well-known

rz命令上传刚才下载的fileauth.htm文件

然后用浏览器访问链接

显示密钥则成功。

二、apache配置SSL

SSL证书审核通过后下载证书

把/etc/apache2/sites-available/default-ssl 做个软连接到 /etc/apache2/sites-enabled/000-default-ssl:

ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

1、开启SSL模块

a2enmod ssl

2、启用SSL

a2ensite default-ssl

3、下载文件上传至

/etc/ssl/www.rainbowz/

4、配置虚拟主机

vi /etc/apache2/sites-enabled/000-default-ssl.conf

添加
<VirtualHost _default_:443>
 ServerAdmin webmaster@localhost
 ServerName www.rainbowz.cn
 DocumentRoot /var/www/html/wordpress
 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
 SSLEngine on 
 SSLCertificateFile /etc/ssl/www.rainbowz/public.pem
 SSLCertificateKeyFile /etc/ssl/www.rainbowz/213981309200254.key
 SSLCertificateChainFile /etc/ssl/www.rainbowz/chain.pem
 <FilesMatch ".(cgi|shtml|phtml|php)$">
 SSLOptions +StdEnvVars
 </FilesMatch>
 <Directory /usr/lib/cgi-bin>
 SSLOptions +StdEnvVars
 </Directory>
 BrowserMatch "MSIE [2-6]" 
 nokeepalive ssl-unclean-shutdown 
 downgrade-1.0 force-response-1.0
 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

 </VirtualHost>

5、重启apache2
service apache2 restart

至此,可以用https访问了!

【注意:编写系统的时候外部链接不要写http或https,如://cdn.bootcss.com/jquery/1.11.2/jquery.min.js
尽量使用相对链接,避免https访问时出错】

【windows系统xampp配置SSL】
1、在C:wampinapacheapache2.4.9conf下新建ssl文件夹存放证书文件
2、打开C:wampinapacheapache2.4.9confhttpd.conf文件
LoadModule ssl_module modules/mod_ssl.so 
Include conf/extra/httpd-ssl.conf 
去掉#
3、修改C:wampinapacheapache2.4.9confhttpd-ssl.conf 文件
添加

<VirtualHost _default_:443>
 DocumentRoot "C:wampwwwvote"
 ServerName XXX.xxxxxxx.com:443
 ServerAdmin admin@example.com
 ErrorLog "C:/wamp/bin/apache/apache2.4.9/logs/error.log"
 TransferLog "C:/wamp/bin/apache/apache2.4.9/logs/access.log"

 SSLEngine on

 SSLCertificateFile "C:/wamp/bin/apache/apache2.4.9/conf/ssl/gzh/public.pem"

 SSLCertificateKeyFile "C:/wamp/bin/apache/apache2.4.9/conf/ssl/gzh/213980337690246.key"

 SSLCertificateChainFile "C:/wamp/bin/apache/apache2.4.9/conf/ssl/gzh/chain.pem"

 <FilesMatch ".(cgi|shtml|phtml|php)$">
 SSLOptions +StdEnvVars
 </FilesMatch>
 <Directory "C:/wamp/bin/apache/apache2.4.9/cgi-bin">
 SSLOptions +StdEnvVars
 </Directory>

 BrowserMatch "MSIE [2-5]" 
 nokeepalive ssl-unclean-shutdown 
 downgrade-1.0 force-response-1.0

 CustomLog "C:/wamp/bin/apache/apache2.4.9/logs/ssl_request.log" 
 "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"

</VirtualHost> 

SSLCertificateFile 后接public.pem文件存放路径
SSLCertificateKeyFile 后接213980337690246.key文件存放路径
SSLCertificateChainFile 后接chain.pem文件存放路径

如果apache重启失败,打开cmd窗口,到apache/bin目录下,运行httpd
根据错误提示修改,大多为log文件路径错误问题。

原文地址:https://www.cnblogs.com/rainbowz/p/7410558.html