centos安装nginx并配置https完整版

下载

官方下载nginx地址
在这里插入图片描述

安装

解压

tar -vzxf nginx-1.20.1.tar.gz

配置SSL,https模块

cd nginx-1.20.1
./configure --prefix=/usr/local/nginx --with-http_ssl_module

注意:这里的/usr/local/nginx路径是你nginx要安装的位置,不是你解压nginx所在的路径。

编译安装

make
make install

两个命令都要执行
注意,这里一般会出现问题:

No rule to make target `install'. Stop.

这是因为缺少gcc环境导致的,执行安装

yum -y install make zlib-devel gcc-c++ libtool openssl openssl-devel

执行完成之后,重新执行./configure --prefix=/usr/local/nginx --with-http_ssl_module命令,否则不生效,还是报错。
继续安装:

make
make install

查看是否安装成功:

/usr/local/nginx/sbin/nginx -V

在这里插入图片描述
出现这个就算成功了。

开机自启

vim /etc/systemd/system/nginx.service
[Unit]
Description=A high performance web server and a reverse proxy server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

更新启动程序

systemctl daemon-reload

设置开机自启

systemctl enable nginx
<think>首先,用户的问题是:“我想查找如何安装Nginx配置HTTPS的教程或指南请问如何在服务器上安装nginx配置https证书”。这很直接:用户想了解如何在服务器上安装Nginx配置HTTPS证书。现在,回顾系统级指令:-所有行内数学表达式必须使用$...$格式,但在这个上下文中,用户的问题是关于NginxHTTPS的,不涉及数学表达式。所以,我应该避免不必要的数学内容。-独立公式必须使用$$...$$格式单独成段,但同样,不相关。-LaTeX语法正确:既然没有数学,这应该不是问题。-使用中文回答:我的响应必须完全用中文。-生成相关问题:在响应末尾,我需要添加相关问题。-回答中引用的段落末尾自然地添加引用标识:例如[^1]。我有几个引用(引用[1]到[^5]),我需要自然地整合它们。引用是关于Nginx安装HTTPS配置的,所以我应该引用这些来源来支持我的回答。用户可见层的指令:-回答结构清晰,帮助用户逐步解决问题:我需要提供一个结构化的指南。-保证回答真实可靠:基于提供的引用,我应该使用这些信息来构建准确的响应。参考引用:-引用[1]:提到了nginx配置https证书,链接到一个博客文章。-引用[2]:详细说明了下载证书和配置nginx.conf文件。-引用[3]:指出nginx默认没有安装ssl模块。-引用[4]:描述了在CentOS下生成证书和配置nginx。-引用[5]:关于在CentOS7.6安装Nginxwithhttp_ssl_module。用户的问题集中在安装Nginx配置HTTPS证书,所以我需要涵盖:1.安装Nginx(可能包括编译时添加SSL模块)。2.获取HTTPS证书(例如,自签名或从CA)。3.配置Nginx以使用证书。结构清晰的回答:-逐步指南:分步骤解释。-使用引用:自然地整合引用。-添加相关问题:在末尾生成相关问题。大纲我的响应:1.**引言**:简要介绍主题。2.**步骤1:安装Nginx**:-提到如果SSL模块未启用,需要编译时添加。-引用[3]和[^5]支持。3.**步骤2:获取HTTPS证书**:-讨论自签名证书或从CA获取。-引用[4]和[^2]支持。4.**步骤3:配置Nginx**:-编辑nginx.conf文件。-示例配置。-引用[2]和[^4]支持。5.**验证和重启**:如何测试和重载配置。6.**相关问题**:生成几个相关问题。确保中文:整个响应用中文。生成相关问题:-基于主题,如:1.如何为Nginx配置HTTP/2?2.如何优化NginxHTTPS性能?3.常见的HTTPS配置错误有哪些?整合引用:-在相关段落末尾添加[^1],[^2]等。例如:-"安装Nginx时,需要确保SSL模块被启用[^3]。"-"配置证书时,指定正确的路径[^2]。"最终响应结构:-回答部分:清晰、逐步。-相关问题部分:以"§§相关问题§§"开头,列出问题。</think>### 如何在服务器上安装Nginx配置HTTPS证书 安装Nginx配置HTTPS证书是确保网站安全传输的关键步骤。以下是一个结构清晰、逐步的指南,基于真实可靠的实践。整个过程包括安装Nginx(确保支持SSL模块)、获取HTTPS证书(自签名或从CA获取)和配置Nginx。以CentOS系统为例,其他Linux发行版类似。 #### 步骤1: 安装Nginx启用SSL模块 首先,确保服务器上安装了必要的工具(如gcc、make)。Nginx默认不包含SSL模块,需要编译时手动添加。 1. **下载编译Nginx**: - 安装依赖库: ```bash sudo yum install -y gcc make openssl-devel pcre-devel zlib-devel ``` - 下载Nginx源码(从官网选择最新版本): ```bash wget https://nginx.org/download/nginx-1.20.0.tar.gz tar -zxvf nginx-1.20.0.tar.gz cd nginx-1.20.0 ``` - 编译时添加`--with-http_ssl_module`参数以启用SSL: ```bash ./configure --with-http_ssl_module --prefix=/usr/local/nginx make sudo make install ``` - 验证安装:运行`/usr/local/nginx/sbin/nginx -V`,输出中应包含`with-http_ssl_module`。如果未显示,需重新编译[^3][^5]。 2. **启动Nginx**: ```bash sudo /usr/local/nginx/sbin/nginx ``` - 检查状态:访问服务器IP地址(如`http://your_server_ip`),应看到Nginx欢迎页面。 #### 步骤2: 获取HTTPS证书 HTTPS证书可以是自签名(测试用)或从CA(如Let's Encrypt)获取。这里以自签名证书为例(生产环境建议使用免费CA证书)。 1. **生成自签名证书**: - 创建证书目录: ```bash sudo mkdir /etc/nginx/ssl cd /etc/nginx/ssl ``` - 生成私钥和证书请求: ```bash sudo openssl genrsa -out server.key 2048 sudo openssl req -new -key server.key -out server.csr ``` - 填写域名信息(如`Common Name`设为你的域名)。 - 生成证书: ```bash sudo openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt ``` - 这将生成`server.crt`(证书)和`server.key`(私钥),有效期10年[^4]。 2. **或使用CA证书**: - 从CA(如Let's Encrypt)获取证书,通常包括`domain.crt`和`domain.key`文件。 - 上传到服务器(如`/etc/nginx/ssl/`目录)。 #### 步骤3: 配置Nginx使用HTTPS 编辑Nginx配置文件,添加HTTPS服务器块。确保路径匹配证书文件。 1. **编辑配置文件**: - 打开`/usr/local/nginx/conf/nginx.conf`: ```bash sudo vi /usr/local/nginx/conf/nginx.conf ``` - 在`http`块内添加或修改`server`块: ```nginx server { listen 443 ssl; # 监听443端口(HTTPS) server_name your_domain.com; # 替换为你的域名 ssl_certificate /etc/nginx/ssl/server.crt; # 证书路径 ssl_certificate_key /etc/nginx/ssl/server.key; # 私钥路径 # SSL优化参数 ssl_session_timeout 5m; ssl_protocols TLSv1.2 TLSv1.3; # 推荐使用较新协议 ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass http://localhost:80; # 转发到HTTP后端(可选) # 或直接服务静态文件:root /usr/local/nginx/html; } } # 可选:重定向HTTP到HTTPS server { listen 80; server_name your_domain.com; return 301 https://$host$request_uri; } ``` - 关键点:`ssl_certificate`和`ssl_certificate_key`必须指向实际文件路径,否则HTTPS会失败[^2][^4]。 2. **测试重载配置**: - 检查配置语法: ```bash sudo /usr/local/nginx/sbin/nginx -t ``` - 如果显示"syntax is ok",继续下一步。 - 重载Nginx: ```bash sudo /usr/local/nginx/sbin/nginx -s reload ``` #### 验证HTTPS配置 - 访问`https://your_domain.com`(用实际域名替换)。浏览器可能显示安全警告(自签名证书),但URL栏应有锁图标表示HTTPS生效。 - 效果:HTTP自动重定向到HTTPS,显示为安全链接[^2]。 #### 注意事项 - **安全性**:生产环境使用免费CA证书(如Certbot工具),避免自签名证书的警告。 - **常见问题**: - 证书路径错误:确保`ssl_certificate`路径正确,权限为可读(`chmod 400`)。 - 端口冲突:检查防火墙是否开放443端口(`sudo firewall-cmd --add-port=443/tcp --permanent`)。 - 参考完整教程:更多细节可查看[Nginx安装指南](https://blog.youkuaiyun.com/weixin_42770320/article/details/139756281)[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码里法

如果能帮助到你就很好了

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

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

打赏作者

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

抵扣说明:

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

余额充值