龙空技术网

docker apache部署ssl

Robert的书签 284

前言:

眼前我们对“apache自定义ssl”大致比较着重,小伙伴们都需要学习一些“apache自定义ssl”的相关文章。那么小编也在网上汇集了一些有关“apache自定义ssl””的相关内容,希望小伙伴们能喜欢,咱们快快来了解一下吧!

本文将介绍本地docker apache开发环境下部署ssl的方法,我们使用window系统为例

1.通过openssl创建自己的密钥和证书

打开终端输入:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt

在此过程中,几乎没有选项是您必须填写,除了“ Common Name”(通用名称)外,其余大部分都可以随意填写。但是Common Name必须填写您要保护的域名,我们假设域名为dev

Common Name (e.g. server FQDN or YOUR name) []: dev

最后,您会在运行命令行的文件夹下找到两个文件server.key和server.crt。

2.编写您的虚拟主机配置文件

文件名称:dev.conf

<VirtualHost *:443>    DocumentRoot "/var/www/html/"    ServerName dev    SSLEngine on    SSLCertificateFile "/etc/apache2/ssl/server.crt"    SSLCertificateKeyFile "/etc/apache2/ssl/server.key"</VirtualHost>

/var / www / html等/是代码默认路径。/ etc / apache2中的/ SSL是我们放置证书的位置。您可以根据自己的需要进行调整。

3.将所有生成的文件放入docker镜像

接下来,我们将编写Dockerfile将所有内容放入新的Docker映像中。让我们使用php:7.1.0-apache作为基本映像。以下Dockerfile的示例:

FROM php:7.1-apacheRUN apt-get update && \    apt-get install -y \        zlib1g-devCOPY server.crt /etc/apache2/ssl/server.crtCOPY server.key /etc/apache2/ssl/server.keyCOPY dev.conf /etc/apache2/sites-enabled/dev.confRUN docker-php-ext-install mysqli pdo pdo_mysql zip mbstringRUN a2enmod rewriteRUN a2enmod sslRUN service apache2 restart

以上Dockerfile 所进行的操作:

1.将密钥文件复制到/ etc/apache2/ssl中;

2.将虚拟主机配置文件(dev.conf)复制到/etc/ apache2/sites-enabled /中;

3.通过内置的安装必要的php扩展名在安装程序docker-php-ext-install

4.中启用所需的apache模块,包括rewrite和ssl。

5.重新启动apache2以使每个更改都能正常工作。

4.构建并运行您的Docker镜像

docker build .

最后 我们将得到镜像版本号 例如:

68b57f0b6302

我们将容器作为我们的http服务器运行。同时支持80和443端口。

docker run -p 80:80 -p 443:443 68b57f0b6302 apache2-foreground

您可以在浏览器中检查http:// dev和https:// dev。因为我们没有在/ var / www / html中添加任何内容。因此应该是apache2返回的错误页面。但是我们可以看到。它正在运行。

在这里插入图片描述对于https,在访问时,我们直接在advance中选择例外即可

在这里插入图片描述现在,它可以工作了。您可以根据需要使用其他域名。只需更改虚拟主机配置文件中的相应ServerName。

标签: #apache自定义ssl