nginx 协议修改 HTTP改为HTTPS

协议修改 HTTP改为HTTPS

1.存在证书和私钥

1.把证书和私钥放到指定位置

直接把证书和私钥放到nginx容器映射物理目录的conf/conf.d中(这个目录自定义,想放在哪里都可以,只要可以映射到容器内就可以),例如:

#nginx docker-compose
  nginx:
    image: nginx:latest
    restart: always
    container_name: nginx
    ports:
    - 8888:80
    volumes:
    - "/home/webServer/nginx/conf/nginx.conf:/etc/nginx/nginx.conf"
    - "/home/webServer/nginx/conf/conf.d:/etc/nginx/conf.d"
    - "/home/webServer/nginx/log:/var/log/nginx"
    - "/home/webServer/nginx/html:/usr/share/nginx/html"
    networks:
      - tinyscan
    
# 1. 将证书和私钥放到/home/webServer/nginx/conf/conf.d目录下

2.修改nginx配置

将监听端口由80改为443,增加ssl, ssl_certificate, ssl_certificate_key

3.重启

docker restart nginx

2.自生成证书与私钥

1.安装OpenSSL

  • 安装依赖环境
# 检测是否安装gcc,如果有则不需要安装
gcc -v
# 安装
yum -y install gcc

# 检查是否已安装zlib库,如果有则不需要安装
whereis zlib
# 安装
yum -y install zlib

# 下载OpenSSL包
wget https://www.openssl.org/source/openssl-fips-2.0.16.tar.gz
# 解压
tar -xzf openssl-fips-2.0.16.tar.gz
# 进入目录
cd openssl-fips-2.0.16/
#设置安装路径
./config --prefix=/usr/local/openssl
# 编译安装
make && make install
# 查看版本
openssl version

2.生成证书

参考:https://blog.csdn.net/weixin_44110998/article/details/104021002

  • 创建一个目录

用于保存证书和私钥。(也可以放到其他目录下)

mkdir /home/yyx/https_key
  • 进入目录
cd /home/yyx/https_key
  • 创建服务器私钥

注:长度1024位, des3加密算法的. (之后输入一个口令(两遍),需要记住)

openssl genrsa -des3 -out server.key 1024

我虚拟机环境是ubuntu 20.04,需将1024改为2048否则nginx重启会报错, 报错如下

2022/11/08 08:50:55 [warn] 1#1: the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /etc/nginx/nginx.conf:44
2022/11/08 08:50:55 [emerg] 1#1: SSL_CTX_use_certificate("/etc/nginx/conf.d/server.crt") failed (SSL:error:140AB18F:SSL routines:SSL_CTX_use_certifi                            cate:ee key too small)
openssl genrsa -des3 -out server.key 2048
  • 创建签名请求的证书CSR

首先会输入密码(上边设置的),会要求你输入国别,比如CN,省份,城市,公司等等一系列信息,自己玩的可以随意输入

最后输入的A challenge password []:和An optional company name []:可以直接回车跳过

openssl req -new -key server.key -out server.csr
  • 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key  #需要输入密码
  • 标记证书使用上述私钥和CSR
注:365是过期天数
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
  • 查看证书和私钥是否创建成功
[root@localhost key_dir]# ls
server.crt  server.csr  server.key  server.key.org
[root@localhost key_dir]# 

3.后面两步同存在证书和私钥步骤中的后两步

posted @   不懂开发的程序猿!  阅读(949)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示