HTTPS时代,免费SSL获取与配置(Apache版)

为何?

若是不知道为何,请绕路。apache

会不会很贵?

随着阿里云、腾讯云等相继退出 ssl证书服务,ssl 证书已经比较亲民。推荐你们使用收费的 ssl 证书,相对于你的业务量来讲,ssl 证书真的不贵。若是你是我的站长,例如本人,不想花费,那么仍是有免费的午饭
https://www.sslforfree.com/ui

申请

sslforfree 不支持泛域名,可是一个证书能够包含100个域名,对于大多数状况下都是够用的,比较蛋疼的是一次输入多个域名,须要验证的过程会很是麻烦,由于每一个域名都须要上传一个验证文件或者增长一条 TXT 记录来验证域名的有效性。因此建议你们一开始不用太贪心,输入实在要使用的域名便可,若是新增了域名,后面仍是能够经过申请新的证书来解决。阿里云

图片描述

多个域名经过空格符间隔开。
点击「Create」就是进入验证界面,验证完毕以后就能够下载证书了。spa

安装证书

打开压缩包里面有3个文件code

  • private.key
  • ca_bundle.crt
  • certificate.crt

三个文件分别对应 Apache 配置里面的:blog

  • SSLCertificateKeyFile
  • SSLCertificateFile
  • SSLCertificateChainFile

上面的对应关系你们不要对应错了。图片

yum install mod_ssl openssl

编辑 /etc/httpd/conf/httpd/confip

LoadModule ssl_module modules/mod_ssl.so

Listen 443
NameVirtualHost *:443

<VirtualHost *:443>
ServerName www.example.com
DocumentRoot /www
SSLEngine on
SSLHonorCipherOrder on

# 禁止SSLv2 SSLv3协议
SSLProtocol all -SSLv2 -SSLv3

#禁止RC4,禁止SF
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS

SSLCertificateFile             /sslforfree/certificate.crt
SSLCertificateKeyFile         /sslforfree/private.key
SSLCertificateChainFile     /sslforfree/ca_bundle.crt
</VirtualHost>

注意:ssl

  1. 使用绝对路径指向证书文件
  2. 若是一个 IP 供应多个域名和证书,必定要加上 NameVirtualHost 443

遇到的坑

在一个 IP 供应多个域名和证书这个问题,折腾了好久,主要的域名是 apache 版本必定要高于 2.2.12,才支持 SNI。支持 SNI 才能实现一个 IP 供给多个证书。另外就是忘记了 NameVirtualHost 443,总是只有一个证书生效,另一个证书失效。sslforfree虽然是免费的,可是由于没3个月就须要 renew 一次,若是嫌麻烦,仍是推荐使用付费证书服务。get

自动跳转https

安装 ssl 证书以后,默认状况下用户是可使用 http 和 https 两种方式来访问服务,若是但愿自动跳转,推荐使用下面的方式

<VirtualHost *:80>
ServerName www.example.com
# 全站跳转
Redirect permanent / https://www.example.com
# 指定跳转
Redirect permanent /user/login https://www.example.com/user/login
</VirtualHost>
相关文章
相关标签/搜索