网站由Http切换至Https-来点啤酒

申请证书

我们这里以freessl为例;这个网站有免费的证书;商业性质网站推荐使用付费的证书;

这里可以按需要选择;如果你解析了很多的子域名;如a.domain.com,b.domian.com;推荐使用Let's Encrypt V2 支持通配符;*.domain.com

这里填入邮箱;因为证书有效期原因;在证书即将到期时;你可能会收到证书提供者的提醒邮件,这里确认创建以后;会得到一个私钥的压缩包。

这一步要开始验证域名,证书提供者需要验证你是不是域名的所有者,这时你需要登陆到你的域名控制台,如腾讯云,阿里云的控制台,添加两条txt记录,

把上图的要求添加的记录值在你的控制台一次添加;稍等几分钟,然后点击验证,等待验证完成。

这时候你可以点击下载证书了,这个压缩包包含一个私钥和pem格式证书

#1、PEM 格式的证书文件适合哪些服务器?

#Nginx、Apache、Candy Server

#2、CRT 格式的证书文件怎么获得?

#直接将 .pem 后缀改为 .crt 就可以

#3、JKS 格式的证书文件怎么获得?

#JAVA 专属格式,可用于 HIS、jboss、Jetty,需要通过转换获得:#https://myssl.com/cert_convert.html

#4、PFX/P12 格式的证书文件怎么获得?

#PKCS12 格式证书,可用于 IIS6、IIS7、IIS8、xchange、代码签名,需要通过转换获得:#https://myssl.com/cert_convert.html

#或者通过 OpenSSL 自助转换:
#openssl pkcs12 -export -in certificate.crt -inkey privateKey.key -out certificate.pfx

上传证书到服务

这一步就大家随意;用ftp;sftp等等

你的服务器或者说容器运行用户需要对该目录有访问权限

setfacl -R -m user:tomcat:rwx 证书目录

修改服务器配置

我这里已nginx服务器为例,nginx支持pem格式;但网上很多使用crt格式;关于格式如何转换上文中已经提到过了。

    server {
        listen 80;
        listen 443 ssl;
        server_name 证书申请域名;
        ssl_certificate /证书根目录/full_chain.crt;
        ssl_certificate_key /证书根目录/private.key;
        location / {
                proxy_pass http://server/;
                client_max_body_size 50m;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Real-PORT $remote_port;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }
    }

然而用户很多时候只会输入域名;不会输入协议头;此时用户等于访问不到https地址;这时我们需要做如下调整

    server {
        listen 80;
        server_name 证书申请域名;
        rewrite ^(.*) https://$server_name$1 permanent;
    }
    server {
#       listen 80;
        listen 443 ssl;
        server_name 证书申请域名;
        ssl_certificate /证书根路径/full_chain.crt;
        ssl_certificate_key /证书根路径/private.key;
        location / {
                proxy_pass http://server/;
                client_max_body_size 50m;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Real-PORT $remote_port;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }

    }

如此配置后;我们重启服务;

service nginx force-reload

此时你再访问;仅需输入域名;将会自动跳转到https服务上去

猜你喜欢

转载自www.cnblogs.com/dev-lluo/p/10158969.html
今日推荐