什么是https?
当然很多人最开始了解的是https,简单讲就是想让自己的网站更安全,可以开发小程序。
什么是ssl证书?
要想用https,就得购买ssl证书。
大概包括DV证书、EV证书、OV证书三种常用的。
安全性DV
怎么获得ssl证书?
DV有免费的,阿里云、西部数码、又拍云,能搜一大把,国际国内一大堆。
建议就在你服务器购买商那儿买,买的时候填好相关信息,就好了。
下边将以西部数码为案例,其他的也差不多。
购买证书倒简单,填一堆资料。里面有个域名所有权验证,当然,购买的时候,服务器厂商会告诉你验证方法,照做就行。
西部数码给了一个windows服务器的验证方法。
Linux(centos所有权验证方法):
1、网站根目录建个名字为.well-known文件夹
2、里面建个pki-validation文件夹,
3、自己电脑整个txt文件,命名为fileauth.txt,然后里面内容放要求的内容。
4、txt上传到pki-validation文件夹。
5、访问http://你的域名/.well-known/pki-validation/fileauth.txt看是否有那串代码。
验证了所有权,等待审核,下载证书。
西部数码下载的Linux服务器证书包括crt、cer、key三种后缀三个文件。
安装证书
1、apache安装openssl和mod_ssl
代码:
yum -y install mod_ssl
yum -y install openssl
2、查看/etc/httpd/conf.d看是否有ssl.conf
3、在/ctc/httpd下创建cert文件夹
4、把下载的证书全部上传到cert文件夹
5、打开/etc/httpd/conf下的httpd.conf,配置
#Listen 80 for http
Listen 80
#如果不想http访问,这坨可以不要。
Header always append X-Frame-Options SAMEORIGIN
ServerName www.你的域名.com
DocumentRoot “你域名根目录”
#建议按该配置,而不是网上搞的加载模块和配置文件分离的方案。
#Listen 443 for https
LoadModule ssl_module modules/mod_ssl.so
#Include conf.d/ssl.conf
Listen 443
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
DocumentRoot “你域名根目录”
ServerName www.你的域名.com
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES
SSLCertificateFile /etc/httpd/cert/你上传的.cer
SSLCertificateKeyFile /etc/httpd/cert/你上传的.key
SSLCertificateChainFile /etc/httpd/cert/你上传的.crt
SSLOptions +StdEnvVars
SSLOptions +StdEnvVars
SetEnvIf User-Agent “.*MSIE.*” \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
“%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”
编辑好后保存(或上传)。
6、到/etc/sysconfig/ 修改iptables(防火墙配置文件),增加
-A INPUT -p tcp -m tcp –dport 443 -j ACCEPT
编辑好后保存(或上传)。
7、重启iptables:service iptables restart
8、重启httpd:service httpd restart
9、如果你做了cdn加速,特别是360的网站卫士免费加速,那么里面必须配置ssl。里面有个上传你的证书。结果会显示openssl失效,360是不会帮你解决的,网上也没有教程。实际方案是将crt和cer文件合并,也就是把cer文件里面的内容复制到crt文件的上头,然后上传,就成了。
10、然后等待cdn生效,不会马上生效。
就算结束了,如果整不来,可以找我,有偿解决。