使用Nginx搭建HTTPS服务器

环境:CentOs 7

1、下载nginx

The CentOS Project 下载稳定版

创建文件夹

[root@localhost ~]# cd /usr/local

[root@localhost local]# mkdir nginx

移动安装包到指定目录:

[root@localhost lss]# cd /tmp/mozilla_lss0/

[root@localhost mozilla_lss0]# mv nginx-1.20.2.tar.gz /usr/local/nginx

2、安装依赖

安装gcc环境

yum install gcc-c++ -y

安装PCRE库,用于解析正则表达式

yum install pcre pcre-devel -y

安装zlib,压缩和解压缩依赖

yum install zlib zlib-devel -y

安装SSL,安全的加密的套接字协议层,用于HTTP安全传输,也就是https

yum install openssl openssl-devel -y

3、解压文件

tar -zxvf nginx-1.20.2.tar.gz

创建nginx临时目录,防止安装出错

mkdir /var/temp/nginx -p

4、make 编译

进入到解压好的nginx文件夹

cd nginx-1.20.2/

自定义配置

$ ./configure \
--prefix=/usr/local/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_stub_status_module \
--with-http_ssl_module

make 编译

make

5、运行、执行命令

查看nginx文件

[root@localhost nginx-1.20.2]# whereis nginx

nginx: /usr/local/nginx

去到执行文件夹

[root@localhost nginx-1.20.2]# cd /usr/local/nginx

[root@localhost nginx]# ll

total 1044

drwxr-xr-x. 2 root root 4096 Apr 22 14:03 conf

drwxr-xr-x. 2 root root 40 Apr 22 14:03 html

drwxr-xr-x. 9 1001 1001 186 Apr 22 13:56 nginx-1.20.2

-r--------. 1 lss lss 1062124 Apr 22 13:14 nginx-1.20.2.tar.gz

drwxr-xr-x. 2 root root 19 Apr 22 14:03 sbin

[root@localhost nginx]# cd sbin

[root@localhost sbin]# pwd

/usr/local/nginx/sbin

启动./nginx 停止./nginx -s stop 优雅停止./nginx -s quit 刷新./nginx -s reload

6、配置https

1、sbin目录下,输入

[root@localhost sbin]# ./nginx -V

确保出现 (configure arguments: --with-http_ssl_module)

2、配置ssl证书

使用OpenSSL生成密钥、证书文件

[root@localhost ~]# openssl genrsa -des3 -out Server.key 1024

需要输入组织信息,留空输入点(.),而非直接回车(用缺省值)

[root@localhost ~]# openssl req -new -key Server.key -out Cert.csr

 

移除、签署自己的证书

[root@localhost ~]# cp Server.key Server.key.org

[root@localhost ~]# openssl rsa -in Server.key.org -out Server.key

Enter pass phrase for Server.key.org:

writing RSA key

[root@localhost ~]# openssl x509 -req -days 365 -in Cert.csr -signkey Server.key -out Cert.crt

Signature ok

subject=/C=CN/ST=shanxi/L=shanxi/O=shanxi/OU=shanxi/CN=ss/emailAddress=123456@qq.com

Getting Private key

配置Nginx配置文件nginx.conf

server {
		 # 监听ssl 443端口
        listen 443 ssl;
		 # 配置服务名称
        server_name localhost;
		 # 能够支持的SSL协议
        ssl_protocols SSLv2 SSLv3 TLSv1;
		 # 配置生成文件的目录地址
        ssl_certificate  /root/Cert.crt; 
        ssl_certificate_key  /root/Server.key;
		 # 设置ssl/tls会话缓存的类型和大小
        ssl_session_cache shared:SSL:1m;
        # 客户端可以重用会话缓存中ssl参数的过期时间
        ssl_session_timeout 5m;
        # 选择加密套件
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        # 设置协商加密算法时,优先使用我们服务端的加密套件
        ssl_prefer_server_ciphers on;
     }
# 实现http跳转https功能
server{
    listen 80;
    server_name yourdomain.com;
    rewrite ^(.*)$ https://$host$1;
    location / {
    index index.html index.htm;
    }
}

重启nginx

[root@localhost sbin]# ./nginx

7、网页访问本地地址

使用域名或者IP

8、wireshark抓包

注意事项:换成root用户在命令行打开wireshark,选择lookback0接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值