让网站用上https

介绍

个人认为让一个没什么流量的网站支持https是没什么意义的,第一,支持https后访问速度会变慢 而且浪费服务器资源,但是没办法,一切为了装逼,为了装逼的一切 https和http的区别就是https更安全,http使用80端口https使用443端口,https有ssl加密 虽然说很多ssl证书都是收费的,但是还是有很多ssl证书是免费的

申请证书

首先我的主机是阿里云的,所以我就直接使用阿里云的证书服务了,在控制面板,点击证书服务,然后 点击购买证书,选择免费DV,然后一直下一步下一步,之后在证书控制台填一下个人信息,审核完成 之后,你就可以下载你的证书了

安装证书

i首先我的服务器是nginx的 在服务器的随便什么位置新建一个文件夹,比如创建/etc/ssl/然后在里面放上你的证书 在你的原来服务器虚拟主机或者nginx.conf的server块下添加

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
server {
    listen 443;  #监听端口,注意https是443http是80
    server_name localhost;
    ssl on;  #开启ssl
    root html;
    index index.html index.htm;
    # ssl两个证书的位置
    ssl_certificate   cert/214085273330414.pem;
    ssl_certificate_key  cert/214085273330414.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;
    }
}

注意

两个不同三级域名的网站比如 abc.bboysoul.cn def.bboysoul.cn 它们的证书是不能用同一个的,所以两个如果你有两个网站,就要申请两个证书

如何强制让用户使用https访问网站

首先要让服务器监听80端口也就是要加上 listen 80; 其次因为当用户访问80端口的时候会报497错误,这样把他强制跳转到https访问,在配置文件中 加上 error_page 497 https://$host$uri?$args;