使用docker搭建自签名https服务器

本文介绍在CentOS中使用Docker安装Nginx并配置HTTPS的过程,包括生成自签名SSL证书、安装基础软件、编译安装Nginx及配置SSL证书等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验简述

使用docker的centos镜像,在里面安装nginx,然后拿自生成的签名,配置nginx证书,最后通过https访问服务器

docker版本:Docker version 18.09.2, build 6247962
centos 镜像: docker search 里面检索出来拿最新的就可以了
nginx版本:nginx-1.15.9
pcre版本:pcre-8.42
ssl证书:自签名获取

自签名SSL证书

# 1.生成私钥
$ openssl genrsa -out server.key 2048

# 2.生成 CSR (Certificate Signing Request)
$ openssl req -subj "/C=CN/ST=Tianjin/L=Tianjin/O=Mocha/OU=Mocha Software/CN=test1.sslpoc.com/emailAddress=test@mochasoft.com.cn" -new -key server.key -out server.csr

# 3.生成自签名证书
$ openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

参考博文:如何创建自签名SSL证书

启动centos镜像

# 1、查找centos镜像
docker search centos

# 2、拉取centos镜像
docker pull centos:latest

# 3、启动镜像,并暴露80和443端口
docker run -d -t -p80:80 -p443:443 centos

# 4、进入容器
docker exec -it <CONTAINER ID> bash

启动效果:
在这里插入图片描述

安装基础软件

# 1、安装ssl模块
yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

# 2、安装wget
yum -y install wget
安装pcre
#下载最新版本的,注意不要用pcre2
wget https://jaist.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz
tar -xvf pcre-8.42.tar.gz
cd pcre-8.42 
#安装编译
./configure
make && make install
#查看pcre版本
pcre-config --version
安装nginx
#下载
wget https://nginx.org/download/nginx-1.15.9.tar.gz
tar -xvf nginx-1.15.9.tar.gz
cd nginx-1.15.9
#编译安装
./configure --prefix=/usr/local/nginx-1.15.9 --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.42 
make && make install
#查看版本
/usr/local/nginx/sbin/nginx -v
启动nginx
# 1、创建目录和日志文件
mkdir /usr/local/nginx-1.15.9/logs/
touch error.log
touch access.log

# 2、启动nginx
/usr/local/nginx-1.15.9/sbin/nginx -c /usr/local/nginx-1.15.9/conf/nginx.conf

# 3、测试启动结果
curl http://localhost 

配置ssl证书到nginx

将第一步骤证书文件cp到docker容器里面

docker cp server.crt <CONTAINER ID>:/usr/local/nginx-1.15.9/conf/
docker cp server.key <CONTAINER ID>:/usr/local/nginx-1.15.9/conf/

修改nginx.conf,往http的对象里添加证书配置,cd如下

    server {
        listen       443 ssl;
        server_name  localhost;

        ssl_certificate      server.crt;
        ssl_certificate_key  server.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

参考:Nginx配置SSL证书

重新启动nginx,显示,说明https已经配置成功

# 删除sbin下面的nginx
rm -rf  ./sbin/nginx

#将obj下面的nginx复制到shin
cp ./objs/nginx ./sbin/

启动 nginx -c nginx.conf
重启nginx -s reload
在这里插入图片描述

参考文章:centos7下安装nginx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值