Nginx支持HTTPS,生成SSL证书

生成证书

# 1. 首先创建SSL证书私钥,期间需要输入两次用户名和密码,生成文件为blog.key;
openssl genrsa -des3 -out blog.key 2048

# 2. 利用私钥生成一个不需要输入密码的密钥文件,生成文件为blog_nopass.key;
openssl rsa -in blog.key -out blog_nopass.key

# 3. 创建SSL证书签名请求文件,生成SSL证书时需要使用到,生成文件为blog.csr;
# 在生成过程中,我们需要输入一些信息,需要注意的是Common Name需要和网站域名一致;
openssl req -new -key blog.key -out blog.csr

# 4. 生成SSL证书,有效期为365天,生成文件为blog.crt;
openssl x509 -req -days 365 -in blog.csr -signkey blog.key -out blog.crt

没有域名也没事,直接配置 hosts 文件也是可以的


别忘了配完后刷新 dns 缓存: ipconfig/flushdns

使用docker搭建nginx环境,通过HTTPS访问 Nginx 静态内容

# 1. 配置环境

# 2. 配置nginx
docker run -p 80:80 -p 443:443 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx  \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10

# 3. 添加配置文件 /mydata/nginx/conf/conf.d/blog.conf,并配置
server {
    listen       80; # 同时支持HTTP
    listen       443 ssl; # 添加HTTPS支持
    server_name  engureguo.com;
  
    #SSL配置
    ssl_certificate      /usr/share/nginx/html/ssl/blog.crt; # 配置证书
    ssl_certificate_key  /usr/share/nginx/html/ssl/blog_nopass.key; # 配置证书私钥
    ssl_protocols        TLSv1 TLSv1.1 TLSv1.2; # 配置SSL协议版本
    ssl_ciphers          ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; # 配置SSL加密算法
    ssl_prefer_server_ciphers  on; # 优先采取服务器算法
    ssl_session_cache    shared:SSL:10m; # 配置共享会话缓存大小
    ssl_session_timeout  10m; # 配置会话超时时间
 
    location / {
        root   /usr/share/nginx/html/www;
        index  index.html index.htm;
    }
 
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

注意事项:

  1. 为方便演示,创建 /mydata/nginx/html/www/index.html 文件

  2. 使用 netstat -nao | findstr :443 发现 VMware 共享虚拟机占用端口,进行修改:

访问 https://engureguo.com

通过HTTPS访问 SpringBoot 应用

参考

posted @ 2021-10-21 13:56  egu0o  阅读(977)  评论(0编辑  收藏  举报