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:\wamp\bin\apache\apache2.4.9\conf下新建ssl文件夹存放证书文件 2、打开C:\wamp\bin\apache\apache2.4.9\conf\httpd.conf文件 LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf 去掉# 3、修改C:\wamp\bin\apache\apache2.4.9\conf\httpd-ssl.conf 文件 添加 <VirtualHost _default_:443> DocumentRoot "C:\wamp\www\vote" 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文件路径错误问题。