nginx

nginx 实现域名 https 协议

2023-01-06  本文已影响0人  暴躁程序员

一、实现域名 https 协议访问(虚拟机模拟linux服务器)

准备虚拟机:192.168.76.100
准备测试域名:www.bbb.com

注意:在测试环境中可以使用虚拟机或者本地电脑生成测试证书,在生产环境中必须要在 https 证书厂商注册

1. 生成证书和秘钥文件

cd /usr/local/nginx/conf
mkdir ssl
cd ssl
控制台依次输入:

openssl genrsa -out bbb.key 2048
openssl req -new -key bbb.key -out bbb.csr
openssl x509 -req -days 365 -sha256 -in bbb.csr -signkey bbb.key -out bbb.crt

2. 修改 nginx.conf 配置文件

server {
        listen       443 ssl;
        server_name  www.bbb.com;
        location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;

            root   html/bbb; #网页根目录(/usr/local/nginx/html/bbb/)
            index  index.html index.htm; 
        }

        ssl_certificate /usr/local/nginx/conf/ssl/bbb.crt;
        ssl_certificate_key /usr/local/nginx/conf/ssl/bbb.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers
        "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
}

server{
        listen 80;
        server_name www.bbb.com;
        rewrite ^(.*)$ https://www.bbb.com permanent; # http重写成https
        root   html/bbb; #网页根目录(/usr/local/nginx/html/bbb/)
        index  index.html index.htm; 
}

3. 重新加载配置文件

/usr/local/nginx/sbin/nginx –s reload 

4. 客户端测试

192.168.76.100 www.bbb.com
ipconfig/flushdns
http://www.bbb.com
https://www.bbb.com

5. 如果不生效

cd /usr/local/nginx/nginx-1.22.0

然后,编译(注意:这里不要进行make install,否则就是覆盖安装)

./configure --with-http_stub_status_module --with-http_ssl_module
make  

最后,暂停 nginx 服务,将刚生成的配置覆盖原来的配置,并重启 nginx

/usr/local/nginx/sbin/nginx -s stop

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp ./objs/nginx /usr/local/nginx/sbin/

/usr/local/nginx/sbin/nginx

二、 实现域名 https 协议访问(阿里云购买真实域名和https证书)

1. 购买二手域名

搜索里输入:域名 --> 点击域名交易 --> 可进行后缀和价格限制 -->选中要购买的域名支付即可,比如

www.greenpray.com

点击控制台 --> 域名 --> 域名列表,选中指定域名 --> 点击解析,将域名解析到指定到服务器的外网 ip 地址

2. 依赖当前域名,购买 https 证书

搜索里输入:https --> 点击管理控制台 --> 点击 SSL 证书--> 点击免费证书 -->创建证书,域名填写

www.greenpray.com

点击下载 --> 可选择不同环境 nginx 或者 apache --> 点击帮助:可查看不同环境下的配置操作
点击下载 --> 下载 nginx 版本的 https 证书文件:

9062163_www.greenpray.com.key
9062163_www.greenpray.com.pem

3. 在服务器中配置

server {
        listen       443 ssl;
        server_name  www.greenpray.com;
        location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;

            root   html; #网页根目录(/usr/local/nginx/html)
            index  index.html index.htm; 
        }

        ssl_certificate /usr/local/nginx/conf/ssl/9062163_www.greenpray.com.pem;
        ssl_certificate_key /usr/local/nginx/conf/ssl/9062163_www.greenpray.com.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers
        "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
}

server{
        listen 80;
        server_name www.greenpray.com;
        rewrite ^(.*)$ https://www.greenpray.com permanent; # http重写成https
        root   html; #网页根目录(/usr/local/nginx/html/)
        index  index.html index.htm; 
}

3. 在客户端浏览器上测试

   https://www.greenpray.com

三、注意

1. 域名解析范围说明

2. 本地解析和互联网解析

上一篇下一篇

猜你喜欢

热点阅读