centos 中:Nginx开启https和局域网访问配置

随着网络应用的普及,越来越多的服务和应用开始运行在互联网上。这些服务和应用需要保护用户数据的机密性、完整性和可用性。HTTPS作为一种可防止中间人攻击的加密通信协议,可以有效地保护用户数据的安全性和隐私性。同时,对于在局域网内部运行的服务和应用,也需要确保其安全性。因此,配置NGINX以支持HTTPS和局域网访问具有重要的实际意义。

一、安装Nginx

不需要使用上传的方法,可以通过先复制链接地址,然后通过wget命令进行下载:

cd /usr/local/src

复制代码
wget http://nginx.org/download/nginx-1.24.0.tar.gz

注意当前目录

注意下/usr/local/src这个目录。

1.1、解压文件:

复制代码
tar -zxvf nginx-1.22.1.tar.gz

1.2、编译安装Nginx:

因为是编译安装,所以需要安装编译器:

复制代码
yum install -y gcc gcc-c++

1)安装Nginx的依赖包:

复制代码
yum install -y pcre-devel openssl-devel

说明:pcre-devel 是为nginx模块,如rewrite提供正则表达式;

zlib-devel为Nginx模块如gzip提供数据压缩用的函数库;

openssl-devel:为Nginx模块如ssl提供密码算法,证书以及ssl协议等功能。

2)Nginx的编译安装:

添加www用户:

复制代码
useradd -s /sbin/nologin -M www
./configure --prefix=/usr/local/nginx --with-http_ssl_module
./configure --prefix=/usr/local/nginx-1.24.0 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module

说明:这个configure,我们添加了www用户,然后我们还增加了nginx状态的模块。监控的时候就能使用到。

说明:

./configure用于对即将安装的软件进行配置,检查当前环境是否满足安装软件的依赖关系。

configure是一个Shell脚本,执行它的作用是生成makefile文件。

root@vm1 nginx-1.24.0# file configure

configure: POSIX shell script, ASCII text executable

root@vm1 nginx-1.24.0#

--prefix是用于设置安装目录;

--with-http_ssl_module选项用于设置在Nginx中允许使用http_ssl_module模块的相关功能。

在目录中多了Makefile文件,这个文件会告诉我们怎么来编译nginx。

3)通过make命令编译安装nginx:

复制代码
make && make install

make是编译,makeinstall是把生成的文件拷贝到指定的目录。

1.3、Nginx的启动与停止:

启动之前,我们一定要检测下配置文件是否正确。这是一个自己的习惯。

复制代码
/usr/local/nginx/sbin/nginx -t

1)启动nginx:

/usr/local/nginx/sbin/nginx

启动命令:

复制代码
cd /usr/local/nginx/sbin
 
./nginx

然后,我们可以看到有两个进程,一个是master进程,一个是worker进程。

打开的端口是80端口。

二、安装Openssl

1. 安装 OpenSSL:

复制代码
 sudo yum install openssl

这将下载并安装 OpenSSL 软件包及其依赖项。

验证安装:安装完成后,执行以下命令来验证 OpenSSL 是否成功安装:

openssl version

如果成功安装,将看到 OpenSSL 的版本信息。

2:生成证书和私钥

  1. 生成私钥:打开命令提示符或终端窗口,执行以下命令以生成私钥文件:

    openssl genpkey -algorithm RSA -out private.key

上述命令将生成一个名为 "private.key" 的私钥文件,使用 RSA 算法。

  1. 生成证书签名请求(CSR):执行以下命令以生成证书签名请求文件:

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

上述命令将生成一个名为 "csr.csr" 的证书签名请求文件,其中包含了与私钥相对应的公钥以及其他证书请求相关的信息。在执行此命令时,您将被要求提供一些证书信息,例如国家/地区、组织名称、公共名称等。

  1. 自签名证书(可选):如果您希望生成自签名证书,可以使用以下命令:

    openssl x509 -req -in csr.csr -signkey private.key -out certificate.crt

上述命令将使用私钥对证书签名请求进行签名,并生成一个名为 "certificate.crt" 的自签名证书文件。

请注意,自签名证书不会得到受信任的第三方机构的认可。如果需要获得由受信任的证书颁发机构(CA)签名的证书,需要将证书签名请求文件(CSR)提交给 CA,并按照他们的指示进行后续操作。

3、nginx和openssl融合

将OpenSSL\bin下新生成的文件名为*.crt和*_nopass.key的两个文件,移动到nginx-1.7.1\conf文件夹下。

五、配置nginx.conf文件

找到nginx-1.7.1\conf下的nginx.conf文件编辑:

把HTTPS server注释部分释放出来,注意更改ssl_certificate和ssl_certificate_key对应的文件,其中名为*.crt和*_nopass.key的文件是上一步放到nginx-1.7.1\conf文件夹下的两个文件。

HTTPS server

server {

listen 443 ssl;

server_name localhost;

ssl_certificate *.crt;

ssl_certificate_key *_nopass.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;

}

}

六、nginx局域网访问(可选)

如果要让nginx服务器能够通过局域网访问,则只需要在nginx-1.7.1\conf文件内容中,复制粘贴server内的内容,并且把server_name的"localhost"改为服务器所在主机的IP地址,重启nginx,即可。

七 查看服务状态

复制代码
ps -A | grep nginx
相关推荐
Madison-No72 小时前
搭建项目测试环境
linux·运维·服务器·python
吴声子夜歌3 小时前
Shell编程实例——编写安全的shell脚本(二)
linux·运维·shell
悠悠121384 小时前
微服务通信别只看性能:REST 与 gRPC 的 6 个选型判断和一次 502 故障复盘
运维·服务器
zx_741484816 小时前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Zenova EdgeOS6 小时前
Linux dmesg 工业边缘实战:内核日志过滤、持久化与故障定位
linux·运维·边缘计算·工业边缘·dmesg·内核日志
wdfk_prog7 小时前
ROS教程08:从 TransportTCP::connect() 追到 TCPROS Connection Header、序列化与 Socket 数据传输
运维·缓存·docker·容器·ros
做运维的阿瑞7 小时前
Python 标准库汇总:分类速览与常用模块清单
linux·运维·python
日常筹谋记8 小时前
自动化仓储安全防护工况评估:明治传感器AS-33C技术适配性分析
大数据·运维·创业创新·业界资讯
Shadow(⊙o⊙)8 小时前
Linux进阶知识1.0
linux·运维·服务器
szephyr9 小时前
HTTPS 证书申请与自动续期:acme.sh + Let‘s Encrypt 完整记录
nginx·https·acme.sh·证书续期