【CharlesE】建站之路(六)SSL证书

原创
2020/10/29 00:45
阅读数 33

在我们浏览网页时,有时候会出现“不安全链接”的提示,这个时候就证明该网站没有SSL证书,网站可能会存在一定的风险。

为了保证网站的安全性,需要为网站添加SSL证书,以此来为客户端浏览器和Web服务器之间建立一条SSL安全通道。

SSL证书主要作用如下:

  • 网站身份验证,确保数据发送到正确的客户端和服务器。
  • 在客户端和服务器端之间建立加密通道,保证数据在传输过程中不被窃取或篡改。

SSL主要分为三个大类:

EV:Extended Validation SSL Certificate , 一般应用于大型企业、金融、保险、银行机构等。

OV:Organization Validation SSL ,一般用于政府组织、中小型企业、教育机构等。

DV: Domain Validation SSL,一般用于个人网站等非商业场景。

对于个人网站来说,用免费的DV SSL足能满足需求。

公有云厂商都会提供SSL证书服务,很方便,在购买SSL证书时,类型选DV,证书品牌选择DigiCert,注意看金额,不同厂家的购买界面不同,购买的时候需要多留意,阿里云和华为云的SSL证书购买界面如下图所示。

购买完成SSL证书并不能直接使用,而时需要提交申请证书(为证书绑定域名、填写证书申请信息)并提交审,流程如下图所示。

最后会收到CA中心会为签发证书,控制台、邮箱都会收到相应的通知,这时候就可以在控制台下载不同类型服务器(Apache、Nginx、Tomcat等)的证书进行部署,部署时建议设置HTTP请求自动跳转HTTPS 。

本次建站采用的Web服务器软件为Nginx,故在域名管理页面下载Nginx服务器的证书,将证书导入服务器后,对Nginx的配置文件进行修改。

一、下载证书

在控制台中找到SSL证书或SSL证书管理(或在控制台搜索SSL)。

找到已购买的证书,点击下载。

进入证书下载界面后,根据服务器类型下载对应的证书,并完成解压。

二、证书说明

不同格式的证书下载解压后可能包含以下文件:

  • .key文件是证书私钥文件,如果申请证书时没有选择系统创建CSR,则没有该文件。请您保存好该私钥文件。

  • .crt文件是证书文件,一般包含两段内容。如果是Apache服务器,会将证书文件拆分成 _public.crt(证书文件)和_chain.crt(证书链或中间证书文件)。

  • .pem文件是证书文件,一般包含两段内容。Nginx证书会使用扩展名文件,在阿里云SSL证书中与.crt文件一样。

  • .pfx文件,一般适合Tomcat/IIS服务器。每次下载都会产生新密码,该密码仅匹配本次下载的证书。如果需要更新证书文件,同时也要更新密码。

所以,Nginx服务器需要用到的文件为.pem和.key文件。

三、安装证书

1、登录Nginx服务器,在Nginx安装目录(默认为/usr/local/nginx/conf)执行以下命令,创建cert目录:

cd /etc/nginx #进入Nginx默认安装目录,请您根据实际配置情况操作。 
mkdir cert #创建cert证书目录。

2、使用WinSCP,将下载的证书文件和密钥文件上传到Nginx服务器的cert目录下,创建完成后如下图所示。

3、执行以下命令,打开Nginx安装目录/nginx.conf配置文件并进行编辑。

vim /etc/nginx/nginx.conf #打开配置文件,请您根据实际配置情况操作。

i键进入编辑模式,在配置文件中找到HTTP协议代码片段,在HTTP协议代码里面找到#Settings for a TLS enabled server后的server代码片段。

如果server 433配置已存在,按照以下注释内容修改相应的配置即可。

#以下属性中以ssl开头的属性代表与证书配置有关,其他属性请根据自己的需要进行配置。
# Settings for a TLS enabled server.
#
server { 
         listen       443 ssl http2 default_server;#适用于Nginx 1.15.0以上版本
         listen       [::]:443 ssl http2 default_server;#适用于Nginx 1.15.0以上版本
#        listen       443 ssl; #该行适用于Nginx 1.15.0以下版本,版本配置HTTPS的默认访问端口号为443。此处如果未配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
         server_name www.certificatestests.com; #将www.certificatestests.com修改为您证书绑定的域名,例如:www.example.com。
         root html;
         index index.html index.htm;
         ssl_certificate cert/domain name.pem;  #将domain name.pem替换成您证书的文件名称。
         ssl_certificate_key cert/domain name.key; #将domain name.key替换成您证书的密钥文件名称。
         ssl_session_timeout 5m;
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
         ssl_prefer_server_ciphers on;
         location / {
         root html;  #站点目录。
         index index.html index.htm;
                    }
      }

设置HTTP请求自动跳转HTTPS。

在需要跳转的HTTP站点(80端口)下添加以下rewrite语句,实现HTTP访问自动跳转到HTTPS页面。
rewrite ^(.*)$ https://$host$1 permanent;   #将所有HTTP请求通过rewrite重定向到HTTPS。

配置文件修改完毕之后,按Esc键后输入:wq!,然后按Enter键保存修改的配置文件并退出编辑模式。

4、执行以下命令,重启Nginx服务器。

systemctl restart nginx

证书安装完成后,可通过登录证书的绑定域名验证该证书是否安装成功。

5、在地址栏输入 https://domain name,domain name替换成证书绑定的域名。如果网页地址栏出现小锁标志(如下图所示),表示证书安装成功。

至此,完成一个完整、安全的个人网站环境就建成了!丰富自己网站的内容吧!!

展开阅读全文
打赏
0
0 收藏
分享
加载中
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部