nginx编译部署配置https
### nginx编译部署配置https
应用环境:系统centos7 虚拟机地址:192.168.25.130 编译安装nginx配置实现https(配置本地转发https端口)
使用wget模块下载相应版本
wget http://nginx.org/download/nginx-1.20.1.tar.gz
安装依赖:
yum install libaio ncurses gcc gcc-c++ cmake ncurses-devel wget pcre-devel zlib-devel openssl openssl-devel
解压:
tar -zxvf nginx-1.20.1.tar.gz
进入解压目录运行:
./configure --prefix=/home/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --with-stream_ssl_preread_module --with-stream_ssl_module
解压目录编译安装:
make && make install
检查:https依赖模块为http_ssl_module
[root@bogon sbin]# /home/nginx/sbin/nginx -V
nginx version: nginx/1.20.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/home/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --with-stream_ssl_preread_module --with-stream_ssl_module
##### 在 nginx 目录新建 cert 文件夹存放证书文件。
这里是用的 pem 与 key 文件,文件名可以更改
Linux生成密钥(测试使用,公网需根据域名到相关网站申请)
在cert文件夹运行一下命令,文件生成在当前目录
###### 生成秘钥key,运行:
openssl genrsa -des3 -out server.key 2048
会有两次要求输入密码,输入同一个即可
然后你就获得了一个server.key文件.
###### 以后使用此文件(通过openssl提供的命令或API)可能经常回要求输入密码,如果想去除输入密码的步骤可以使用以下命令:
openssl rsa -in server.key -out server.key
###### 创建服务器证书的申请文件server.csr,运行:
openssl req -new -key server.key -out server.csr
###### 其中Country Name填CN,Common Name填主机名也可以不填,如果不填浏览器会认为不安全.(例如你以后的url为https://abcd/xxxx....这里就可以填abcd),其他的都可以不填.
###### 创建CA证书:
openssl req -new -x509 -key server.key -out ca.crt -days 3650
此时,你可以得到一个ca.crt的证书,这个证书用来给自己的证书签名.
###### 创建自当前日期起有效期为期十年的服务器证书server.crt:
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt
###### ls你的文件夹,可以看到一共生成了5个文件:
ca.crt ca.srl server.crt server.csr server.key
###### 其中,server.crt和server.key就是你的nginx需要的证书文件.
##### nginx.conf 配置(修改HTTPS server中sever)备注:#HTTPS server 注释不用修改
server {
listen 9001 ssl; #高版本不需要ssl on; 添加在了监控端口之后
server_name localhost; #填写申请对应的域名,测试无需修改
ssl_certificate /home/nginx/cert/server.crt;#配置证书位置
ssl_certificate_key /home/nginx/cert/server.key;#配置密钥位置
ssl_session_cache shared:SSL:1m;
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;
location / {
root html;
proxy_pass http://127.0.0.1:8081;#配置本地端口转发
index index.html index.htm;
}
}
备注:http 模块可以注释或删除
##### 启动nginx:
/home/nginx/sbin/nginx
##### 关闭nginx
./nginx -s stop
##### 更改配置文件后重载
./nginx -s reload
##### 验证:nginx启动后验证
https://192.168.25.130:9001/
备注:生产环境验证为:https://域名:端口/
`如果对您有所帮助请《点赞》、《收藏》、《转发》,您的支持是我持续更新的动力,有疑问请留言`