转载地址:

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

原理就不讲了,主要讲一下如何把我们的网站变成https以及https的有点。

一、从HTTP到HTTPS

我这里是到上面申请免费的证书,他的证书有效期为90天,但可以通过再次申请。下面我就来试试好不好用。

Step1: 创建Let’s Encrypt账户私钥

openssl genrsa 4096 > account.key

Step2: 为您的域创建证书签名请求(CSR)

# Generate a domain private key (if you haven't already)openssl genrsa 4096 > domain.key# For a single domain 单域名openssl req -new -sha256 -key domain.key -subj "/CN=yoursite.com" > domain.csr # For multiple domains 多域名 (use this one if you want both www.yoursite.com and yoursite.com) openssl req -new -sha256 -key domain.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:yoursite.com,DNS:www.yoursite.com")) > domain.csr

Step3:让你的网站主机challenge 文件

# Make some challenge folder (modify to suit your needs)mkdir -p /var/www/challenges/
# Example for nginxserver {    listen 80;    server_name yoursite.com www.yoursite.com;    location /.well-known/acme-challenge/ {        alias /var/www/challenges/;        try_files $uri =404;    }    ...the rest of your config}

Step4: 获得签名证书!

# 下载acme_tiny.py 这个是github地址https://github.com/diafygi/acme-tiny.git
# Run the script on your serverpython acme_tiny.py --account-key ./account.key --csr ./domain.csr --acme-dir /var/www/challenges/ > ./signed_chain.crt

Step5: 安装证书

配置nginx.conf

server {    listen 443 ssl;    server_name yoursite.com, www.yoursite.com;    ssl_certificate /path/to/signed_chain.crt;    ssl_certificate_key /path/to/domain.key;    ssl_session_timeout 5m;    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;    ssl_session_cache shared:SSL:50m;    ssl_dhparam /path/to/server.dhparam;    ssl_prefer_server_ciphers on;    ...the rest of your config}server {    listen 80;    server_name yoursite.com, www.yoursite.com;    location /.well-known/acme-challenge/ {        alias /var/www/challenges/;        try_files $uri =404;    }    ...the rest of your config}

http自动跳转到https

server {   listen 80;   server_name www.52chenqi.cn 52chenqi.cn;   location /.well-known/acme-challenge/ {     root /usr/local/nginx/ssl/www/;     try_files $uri =404;   }   location / {     rewrite ^(.*) https://$server_name$1 permanent;   }}

二、优点

1、HTTPS具有更好的加密性能,避免用户信息泄露;

2、HTTPS复杂的传输方式,降低网站被劫持的风险;

3、搜索引擎已经全面支持HTTPS抓取、收录,并且会优先展示HTTPS结果;

4、HTTPS绿锁表示可以提升用户对网站信任程度;

5、可以有效防止山寨、镜像网站等