Nginx 自签证书实现80转443

news/2024/7/12 3:08:12 标签: nginx, https, ssl, openssl

目录

    • 一、服务器规划
    • 二、执行步骤
      • 2.1 自签证书
      • 2.2 Nginx 配置
    • 三、验证

一、服务器规划

OSserver备注
CentOS7.8(10.20.10.62)nginx_1.13.7
openssl_1.0.2
gcc_4.8.5
80 —>443
80<—>443

资源包下载:

nginx

openssl

gcc

二、执行步骤

2.1 自签证书

1、服务安装

相关资源的具体安装步骤我之前的博文有过介绍,可参考《Nginx七层负载均衡规划及部署》。重点不在于安装,在于如何实现 http 转 https,或两者之间均可访问。

2、生成 rsa 私钥

输入用户名、密码、邮箱等(可自定义,但需注意格式)

openssl genrsa -des3 -out server.key 1024

3、生成 csr 证书签名申请文件

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

4、输出无加密的私钥

这里之所以输出无加密的私钥,是为了避免每次 reload 时都需要输入密码,很麻烦。

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

5、生成 crt 证书

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

# 证书有效期10年,可自定义

2.2 Nginx 配置

1、直接 443

server {
    listen 443 ssl;
    server_name  10.20.10.62;    # IP或域名
    ssl_certificate  /usr/local/nginx/key/server.crt;           # 证书路径
    ssl_certificate_key /usr/local/nginx/key/server_test.key;   # 私钥路径
    ssl_session_timeout 5m;
    ssl_protocols SSLv2 SSLv3 TLSv1;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers on;
    client_max_body_size 50M;
    client_body_buffer_size 2M;

    location / {
        root   /data/web/ssl_test/;
        index  index.html index.htm;
        try_files $uri $uri/ @router;
    }
}

2、80 转 443

server {
    listen 443 ssl;
    server_name  10.20.10.62;    # IP或域名
    ssl_certificate  /usr/local/nginx/key/server.crt;           # 证书路径
    ssl_certificate_key /usr/local/nginx/key/server_test.key;   # 私钥路径
    ssl_session_timeout 5m;
    ssl_protocols SSLv2 SSLv3 TLSv1;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers on;
    client_max_body_size 50M;
    client_body_buffer_size 2M;

    location / {
        root   /data/web/ssl_test/;
        index  index.html index.htm;
        try_files $uri $uri/ @router;
    }
}

server {
    listen 80;
    server_name 10.20.10.62;
    rewrite ^(.*)$ https://$host$1 permanent;
}

注意:listen 443 这种写法支持新版本而不支持老版本的,所以我使用了listen 443 ssl

echo "80-->443" >> /data/web/ssl_test/index.html

3、80/443 均可访问

server {
    listen 80;
    listen 443 ssl;
    server_name  10.20.10.62;    # IP或域名
    ssl_certificate  /usr/local/nginx/key/server.crt;           # 证书路径
    ssl_certificate_key /usr/local/nginx/key/server_test.key;   # 私钥路径
    ssl_session_timeout 5m;
    ssl_protocols SSLv2 SSLv3 TLSv1;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers on;
    client_max_body_size 50M;
    client_body_buffer_size 2M;

    location / {
        root   /data/web/ssl_test/;
        index  index.html index.htm;
        try_files $uri $uri/ @router;
    }
}

这种方法就是在一个 server 里面同时监听 80 和 443 两个端口。

echo "80<-->443" >> /data/web/ssl_test/index.html

三、验证

1、80 转 443

http://10.20.10.62/ (访问 http 时,跳转到 https

https://img-blog.csdnimg.cn/20210713161257240.png#pic_center" alt="在这里插入图片描述" />

2、80/443 均可访问

http://10.20.10.62/(正常访问 http)
https://10.20.10.62/(正常访问 https

https://img-blog.csdnimg.cn/20210713161933180.png#pic_center" alt="在这里插入图片描述" />
注意:

https 需 Nginx 添加http_ssl_module模块,关于 Nginx 如何添加模块,大家可参考我之前的博文《Nginx实现平滑升级》。


http://www.niftyadmin.cn/n/1865210.html

相关文章

关于Gluster稳定性的一个BUG

这一段时间一直在研究Gluster集群文件系统&#xff0c;其技术架构和原理请参考前面的一篇文章“Gluster集群文件系统研究”。为了验证其所声称的高扩展、高可用、高性能的特点&#xff0c;我部署了一个较大规模的测试环境&#xff0c;4个I/O节点&#xff08;即brick servers&am…

深入理解Bloom Filter

Bloom Filter是1970年由Bloom提出的&#xff0c;最初广泛用于拼写检查和数据库系统中。近年来&#xff0c;随着计算机和互联网技术的发展&#xff0c;数据集的不断扩张使得 Bloom filter获得了新生&#xff0c;各种新的应用和变种不断涌现。Bloom filter是一个空间效率很高的数…

Tencent SSL 数字证书安装部署

目录前言一、SSL 证书购买二、配置监听器三、Nginx SSL 配置FAQ前言 之前写了一篇关于 SSL 证书的文章《Nginx 自签证书实现80转443》&#xff0c;不过这是自签证书的形式进行部署的&#xff0c;尽管能正常访问&#xff0c;但依然显示是不安全的&#xff0c;因为自签证书是得不…

HASHDB:一个简单的KeyValue存储系统原型

1、HashDB是什么&#xff1f; HashDB是一个简单的KeyValue存储系统原型&#xff0c;提供基本的<key, value>二元组的数据存储与读取功能&#xff0c;亦即当前被广为推崇的NoSQL存储系统。最初想到设计这个小系统&#xff0c;完全是出于偶然。本人维护着一个轻量级的开源重…

分布式文件系统元数据服务模型

随着非结构化数据的爆炸&#xff0c;分布式文件系统进入了发展的黄金时期&#xff0c;从高性能计算到数据中心&#xff0c;从数据共享到互联网应用&#xff0c;已经渗透到数据应用的各方各面。对于大多数分布式文件系统(或集群文件系统&#xff0c;或并行文件系统)而言&#xf…

TDengine 在IT运维监控领域的应用

目录前言一、TD 特点二、安装部署2.1 部署2.2 验证三、应用领域3.1 运维监控3.2 远端扩展总结前言 TDengine 由北京涛思数据科技有限公司&#xff08;TAOS Data&#xff09;自主研发&#xff0c;而且不依赖于任何开源或第三方软件&#xff0c;拥有自主的知识产权。其应用领域涉…

CentOS 系统根目录 /dev/mapper/cl-root 100% 耗尽的解决方案

1、问题描述 前段时间在公司内部部署了一套 CentOS 系统来做一些相关的内部测试&#xff0c;根目录仅 50G 空间大小。我在上面搭建了一套监控系统&#xff08;用于测试&#xff09;&#xff0c;后面因其他工作就忘记停掉数据采集插件&#xff0c;导致有大量的日志输出&#xf…

相似数据检测算法

相似数据检测算法对给定的一对数据序列计算两者之间的相似度([0,1], 1表示完全相同)或距离([0, ), 0表示完全相同)&#xff0c;从而度量数据之间的相似程度。相似数据检测在信息科学领域具有非常重要的应用价值&#xff0c;比如搜索引擎检索结果的聚类与排序、数据聚类与分类、…