使用docker部署测试,项目(nginx-ssl)目录结构如下:

- 生成证书文件
# 创建项目目录 mkdir nginx-ssl cd nginx-ssl # 创建证书目录 mkdir certs cd certs # 生成证书(-subj内容不用修改) openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt -subj "/C=AU/ST=VIC/L=Melbourne/O=Ranch/OU=root/CN=root/emailAddress=sample@sample.com" - 生成nginx配置文件
# 生成目录 mkdir conf.d cat << EOF > conf.d/default.conf server { # 直接在 listen 指令中指定 ssl,无需再用 ssl on; listen 443 ssl; server_name localhost; # 移除 ssl on; 这一行 ssl_certificate /etc/nginx/certs/server.crt; ssl_certificate_key /etc/nginx/certs/server.key; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; # 注意:建议移除 SSLv3,因为它存在安全漏洞 ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; location / { root /usr/share/nginx/html; index index.html index.htm; } } EOF - 生成html测试页面
# 创建目录 mkdir html # 生成测试文件 echo "<h1>hello nginx-ssl!!!</h1>" > html/index.html - 编辑Dockerfile文件
# 生产Dockerfile文件 cat << eof > Dockerfile FROM nginx:1.22 copy html/index.html /usr/share/nginx/html/index.html copy certs/server.crt /etc/nginx/certs/server.crt copy certs/server.key /etc/nginx/certs/server.key copy conf.d/default.conf /etc/nginx/conf.d/default.conf EXPOSE 443 << eof - 运行程序测试
# 编译生成docker镜像,在Dockerfile文件目录下执行 docker build -t nginx-ssl . # 查看生成好的镜像 docker images # 运行生成的镜像容器 docker run -d -p 8443:443 nginx-ssl
本机浏览器访问:https://localhost:8443/index.html

793

被折叠的 条评论
为什么被折叠?



