前言:
眼前我们对“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