[基础服务] 10分钟给您的站点服务加上SSL

本文介绍如何在腾讯云和阿里云申请免费HTTPS证书,以及如何在Windows环境下使用OpenSSL生成自签名证书,并详细讲解了配置Nginx以支持HTTPS的过程。

前言

HTTPS有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。

方法 /步骤

一: 💖免费证书

腾讯云

笔者写这篇文章的时候,腾讯云还可以申请个人免费型HTTPS证书,但是这个不在本文考虑范围之内,如果想了解可以点击进入了解
在这里插入图片描述

阿里云

在这里插入图片描述
这里申请的是DV证书,填写申请
在这里插入图片描述

  • 大概四五分钟会申请成功,然后到控制台的下载页面进行下载
    在这里插入图片描述

二: OpenSSL生成自签证书 (Windows环境)

1. 安装OpenSSL:

编译好的OpenSSL下载地址
此文下载的是64位的:Win64OpenSSL_Light-1_1_1g.exe
下载后安装!

2. 将安装成功的路径bin目录,添加到Win系统的Path路径:

在这里插入图片描述

3. 在 D:\OpenSSL-Win64 目录下创建ssl目录,以后自签名证书存到这个目录;

在这里插入图片描述

4. 启动 cmd 或者Powershell 命令行程序,切到 D:\OpenSSL-Win64\ssl 目录,开始创建证书。

  • 创建服务器私钥
openssl genrsa -des3 -out server.key 2048 

在这里插入图片描述

5. 创建CSR证书请求文件

openssl req -new -key server.key -out server.csr

(名字公司随便填)
在这里插入图片描述

6. 备份有秘密的私钥文件

copy server.key server.key.orig

7. 去掉私钥文件的密码

openssl rsa -in server.key -out server.key

在这里插入图片描述

8. 使用服务器私钥签署服务器公钥证书

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

在这里插入图片描述

9. 服务端证书生成完毕

在这里插入图片描述

三:配置证书到Nginx

1. 将ssl整个文件夹,拷贝到nginx目录中,conf下

在这里插入图片描述

2. 配置Nginx中conf下nginx.conf文件

  • 主要放开443 的server
   server {
        listen       443  ssl;
        server_name  localhost;

        ssl_certificate      ssl/server.crt;
        ssl_certificate_key  ssl/server.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

3. 配置成功,打开https

在这里插入图片描述

4. 默认80端口使用SSL

  • Nginx配置 rewrite 重写地址到https
 location / {
            root   html;
            index  index.html index.htm;
           # 重写URL地址到HTTPS
           rewrite ^ https:/$http_host$request_uri? permanent; 
        }

❗❗关于自签名站点显示不安全

在这里插入图片描述

  • 双击crt文件,安装到本地
    在这里插入图片描述

在这里插入图片描述
再次连接显示:
在这里插入图片描述

参考资料 & 致谢

【1】Nginx下载官网
【2】openssl 、nginx生成配置自签名证书
【3】SSL–Windows下生成OpenSSL自签证书
【4】nginx: [emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/
【5】nginx证书填写路径报错:library:fopen:Unknown error:fopen
【6】Nginx下配置SSL模块,支持https
【7】[/usr/local/openssl//.openssl/include/openssl/ssl.h] Error 127

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OxYGC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值