NGINX配置使用HTTPS

举报
Nick Qiu 发表于 2021/03/25 23:04:31 2021/03/25
【摘要】 前言 本文演示如何给NGINX服务器配置HTTPS链接,通过本文的练习,读者应该具备能力在centos上部署一个nginx服务器,并配置https链接;文内使用的操作系统为CENTOS7。 安装软件 下载 yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel wget https:/...

前言

本文演示如何给NGINX服务器配置HTTPS链接,通过本文的练习,读者应该具备能力在centos上部署一个nginx服务器,并配置https链接;文内使用的操作系统为CENTOS7。

安装软件

  • 下载
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
wget https://nginx.org/download/nginx-1.14.0.tar.gz
tar -xzvf nginx-1.14.0.tar.gz
cd nginx-1.14.0
  • 配置nginx
# ./configure --prefix=/usr/local/nginx --sbin-path=/usr/bin/nginx --with-http_ssl_module --with-http_realip_module --with-http_geoip_module --with-http_sub_module --with-stream --with-http_stub_status_module

./configure --prefix=/usr/local/nginx  --sbin-path=/usr/bin/nginx --with-http_stub_status_module --with-http_ssl_module

./configure --help 可以查看配置项说明
完成之后的配置文件见:/usr/local/nginx/conf/nginx.conf,参数配置说明:https://nginx.org/en/docs/configure.html

  • 编译
make && make install

配置证书

如果是购买证书,直接拷贝到conf/ssl目录下即可。如果是私有证书,本文末尾有说明如何生成私有证书,读者可以按步骤运行。

修改配置文件

## 参考conf/nginx.conf文件,修改如下内容(此处只是关键需要修改的部分)
http { server { #   HTTP 和 HTTPS 都使用,如果不使用HTTP则注释掉80端口即可 listen 80; listen 443 ssl; server_name  localhost; ssl_certificate ssl/server.crt; ssl_certificate_key ssl/server.key; }
}

启动、停止、重启

# 1.启动nginx
shell> nginx
# 可通过ps -ef | grep nginx查看nginx是否已启动成功
# 2.停止nginx
shell> nginx -s stop
# 3\. 重新启动
shell> nginx -s reload

nginx默认配置启动成功后,会有两个进程,一个主进程(守护进程),一个工作进程。主进程负责管理工作进程,工作进程负责处理用户的http请求。

使用浏览器访问: https://192.168.1.10,如果能显示页面,则操作成功,如果不能显示,请排查一下CENTOS防火墙配置。

补充说明

生成证书

cd ~
mkdir ssl && cd ssl
# 注意:一般生成的目录,应该放在nginx/conf/ssl目录
# 1.创建服务器证书密钥文件 server.key:
openssl genrsa -des3 -out server.key 1024
# 输入密码,确认密码,自己随便定义,但是要记住,后面会用到。
# 2.创建服务器证书的申请文件 server.csr
openssl req -new -key server.key -out server.csr
# 输出内容为:
Enter pass phrase for root.key: ← 输入前面创建的密码 
Country Name (2 letter code) [AU]:CN ← 国家代号,中国输入CN 
State or Province Name (full name) [Some-State]:BeiJing ← 省的全名,拼音 
Locality Name (eg, city) []:BeiJing ← 市的全名,拼音 
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ← 公司英文名 
Organizational Unit Name (eg, section) []: ← 可以不输入 
Common Name (eg, YOUR name) []: ← 此时不输入 
Email Address []:admin@mycompany.com ← 电子邮箱,可随意填
Please enter the following ‘extra’ attributes 
to be sent with your certificate request 
A challenge password []: ← 可以不输入 
An optional company name []: ← 可以不输入
# 4.备份一份服务器密钥文件
cp server.key server.key.org
# 5.去除文件口令
openssl rsa -in server.key.org -out server.key
# 6.生成证书文件server.crt
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt


mkdir  /usr/local/nginx/conf/ssl
cp * /usr/local/nginx/conf/ssl/

配置nginx开机启动

将/usr/bin/nginx命令添加到/etc/rc.d/rc.local文件中,rc.local文件会在系统启动的时候执行。但CentOS7建议将开机启动服务写成服务描述文件添加到系统服务中,所以rc.local默认没有执行权限,需要给它添加执行权限。

shell> vim /etc/rc.d/rc.local
# 添加如下参数
/usr/bin/nginx

shell> chmod +x /etc/rc.d/rc.local

官方参考

文章来源: www.jianshu.com,作者:Nick_4438,版权归原作者所有,如需转载,请联系作者。

原文链接:www.jianshu.com/p/602a70c1b04e

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。