## 前言:在使用Chrome浏览器访问某些网站时,遇到浏览器网址栏前方显示红色“Not Secure”的安全警告,还附加一个感叹号,看着十分碍眼。这是浏览器对于未部署HTTPS的网站的警告,目的是为了告诉用户和网站所有者此网站没有经过HTTPS加密,存在安全隐患。因此,作为站主的我们就需要着手解决这个问题 --- SSL证书的部署。
## 如何选择SSL证书?
选择好适用于自己网站的SSL证书以及正规的证书颁发机构是至关重要的。SSL证书虽然种类繁多,但是了解自己的网站定位之后再做挑选其实并不是什么难事。
### 1. 根据网站类型选择SSL证书等级
目前市面上销售的证书类型主要有DV(域名型证书),OV(企业/组织型证书)以及EV(扩展型/增强型证书),最直观的选择方法就是从自己的网站的类型出发。个人网站适用最入门的DV证书,企业和小型电商类网站适用OV证书,而金融类和大型电商类网站则适合用最高等级的EV证书。一般颁发SSL证书的CA机构都会告诉给你推荐适合的SSL证书。
### 2. 从域名数量选择SSL证书类型
确定您所拥有的域名数量,拥有单个域名就可以选择普通的单域名证书,拥有子域名的网站就选通配符型证书(wildcard),拥有多个域名的网站则应当选多域名型证书(Multi-domain)。
**这里,结合博主的经济问题,所以我选择了免费的DV类型的SSL证书。
## 环境:
### Apache2服务器
### Ubuntu16.04系统
## SSL证书的购买
---------------------------------------------------------------------------------------------------
### 1. 进入阿里云 (https://cn.aliyun.com) ,进入选购SSL证书页面,购买免费的DV类型的SSL证书
### 2. 验证刚购买的证书、并绑定域名后,下载Apache类型的证书。证书由3个文件构成,如下:
** 证书文件:以.crt为后缀或文件类型。
** 证书链文件:以.crt为后缀或文件类型。
** 秘钥文件:以.key为后缀或文件类型。
** 免费证书只能绑定一个域名,如果需要绑定多个域名则需要购买多个证书。
## SSL证书的部署
---------------------------------------------------------------------------------------------------
### 1. 进入服务器的/etc/apache2/目录下,创建一个新目录/cert,用于放置SSL证书。
sudo mkdir /etc/apache2/cert/
### 2. 将刚下载的证书放入目录:/etc/apache2/cert/
### 3. 加载OpenSSL模块,终端输入openssl,如果见到下图这样,就说明已经安装了。
### 4. 加载Apache的SSL模块, 使用命令sudo a2enmod ssl:
** 第一次加载需要重启apache
### 4.在apache2下加入SSL证书
vi /etc/apache2/sites-available/default-ssl.conf // 作以下修改: <VirtualHost *:443> ServerName www.domain.com SSLCertificateFile /etc/apache2/cert/2_www.domain.com_public.crt SSLCertificateKeyFile /etc/apache2/cert /3_www.domain.com.key SSLCertificateChainFile /etc/apache2/cert/1_www.domain.com_chain.crt
### 5. 把default-ssl.conf映射至/etc/apache2/sites-enabled文件夹
sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf
### 6. 重启apache服务
sudo /etc/init.d/apache2 force-reload sudo /etc/init.d/apache2 restart
### 7. 使所有对域名的请求都以HTTPS方式跳转
vi /etc/apache2/site-available/000-deafult.conf // 在<VirtualHost *:80></VirtualHost>中加入: RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
### 8. 以https://domain.com或者https://www.domain.com 打开网站