drimwai的博客

SSL证书的部署,解决Not Secure警告问题

## 前言:在使用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证书

image001.png

 

### 2. 验证刚购买的证书、并绑定域名后,下载Apache类型的证书。证书由3个文件构成,如下:

image002.png

** 证书文件:以.crt为后缀或文件类型。

** 证书链文件:以.crt为后缀或文件类型。

** 秘钥文件:以.key为后缀或文件类型。

** 免费证书只能绑定一个域名,如果需要绑定多个域名则需要购买多个证书。

 

## SSL证书的部署

---------------------------------------------------------------------------------------------------

### 1. 进入服务器的/etc/apache2/目录下,创建一个新目录/cert,用于放置SSL证书。

sudo mkdir /etc/apache2/cert/

 

### 2. 将刚下载的证书放入目录:/etc/apache2/cert/

 

### 3. 加载OpenSSL模块,终端输入openssl,如果见到下图这样,就说明已经安装了。

image003.png

 

### 4. 加载ApacheSSL模块, 使用命令sudo a2enmod ssl:

image004.png

** 第一次加载需要重启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 打开网站

image005.png

drimwai的博客
drimwai的博客
使用条款和私隐条款。版权所有,保留一切权利。
Copyright by drimwai Liang (2018-2020). All Right Reserved.