NGINX配置使用HTTPS

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

前言

本文演示如何给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.gzcd 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.启动nginxshell> nginx# 可通过ps -ef | grep nginx查看nginx是否已启动成功# 2.停止nginxshell> 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.csropenssl 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.crtopenssl 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

官方参考


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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