前提・実現したいこと
dockerでphp+apache+mysql+mailhogなローカル環境を作り動かしていて、virtualhostで複数サイトを同時に起動できるようにしています。
ふとローカル環境をssl化したいと思い、mkcertでワイルドカード証明書を作り動かしたところどうしてもchromeに怒られてしまいます。
apacheの設定はデフォルトの設定をコピーし、crtとkeyファイルのパスを自分で作ってコンテナにコピーした証明書で作っています。
発生している問題・エラーメッセージ
特定のドメインのみ(aaa.localhost)だとうまくいくが、*.localhostで証明書を作るとcommonnameerrorが発生する
該当のソースコード
bash
1mkcert "*.localhost"
したものをserver.crtとserver.keyにリネームして使っています
試したこと
ネットで「openssl chromeに怒られない ワイルドカード」等で検索し、出てきたものを使って実行したりしてみた
特定ドメインだと動くので、apacheの設定はおかしくないと思う
せっかくmampからdockerに乗り換え、vhostの設定をいちいち書かなくていいようにしたのに、sslのためにまた一つ一つ書くのが面倒
補足情報(FW/ツールのバージョンなど)
apacheのsslの設定です。default-ssl.confをコピーしてキーのディレクトリとvhostを設定してます。
conf
1<IfModule mod_ssl.c> 2 <VirtualHost *:443> 3 4 DocumentRoot /var/www/html 5 6 # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, 7 # error, crit, alert, emerg. 8 # It is also possible to configure the loglevel for particular 9 # modules, e.g. 10 LogLevel info ssl:warn 11 12 ErrorLog ${APACHE_LOG_DIR}/error.log 13 CustomLog ${APACHE_LOG_DIR}/access.log combined 14 15 SSLEngine on 16 17 18 SSLCertificateFile /etc/apache2/ssl/keys/server.pem 19 SSLCertificateKeyFile /etc/apache2/ssl/keys/server-key.pem 20 21 # Server Certificate Chain: 22 # Point SSLCertificateChainFile at a file containing the 23 # concatenation of PEM encoded CA certificates which form the 24 # certificate chain for the server certificate. Alternatively 25 # the referenced file can be the same as SSLCertificateFile 26 # when the CA certificates are directly appended to the server 27 # certificate for convinience. 28 #SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt 29 30 # Certificate Authority (CA): 31 # Set the CA certificate verification path where to find CA 32 # certificates for client authentication or alternatively one 33 # huge file containing all of them (file must be PEM encoded) 34 # Note: Inside SSLCACertificatePath you need hash symlinks 35 # to point to the certificate files. Use the provided 36 # Makefile to update the hash symlinks after changes. 37 #SSLCACertificatePath /etc/ssl/certs/ 38 #SSLCACertificateFile /etc/apache2/ssl.crt/ca-bundle.crt 39 40 # Certificate Revocation Lists (CRL): 41 # Set the CA revocation path where to find CA CRLs for client 42 # authentication or alternatively one huge file containing all 43 # of them (file must be PEM encoded) 44 # Note: Inside SSLCARevocationPath you need hash symlinks 45 # to point to the certificate files. Use the provided 46 # Makefile to update the hash symlinks after changes. 47 #SSLCARevocationPath /etc/apache2/ssl.crl/ 48 #SSLCARevocationFile /etc/apache2/ssl.crl/ca-bundle.crl 49 50 # Client Authentication (Type): 51 # Client certificate verification type and depth. Types are 52 # none, optional, require and optional_no_ca. Depth is a 53 # number which specifies how deeply to verify the certificate 54 # issuer chain before deciding the certificate is not valid. 55 #SSLVerifyClient require 56 #SSLVerifyDepth 10 57 58 59 <FilesMatch ".(cgi|shtml|phtml|php)$"> 60 SSLOptions +StdEnvVars 61 </FilesMatch> 62 <Directory /usr/lib/cgi-bin> 63 SSLOptions +StdEnvVars 64 </Directory> 65 66 67 ServerName localhost 68 ServerAlias *.localhost 69 VirtualDocumentRoot "/var/www/html/%1" 70 <Directory "/var/www/html"> 71 AllowOverride All 72 </Directory> 73 74 </VirtualHost> 75</IfModule>
こちらの環境を使っています(ステマじゃないよ)
https://github.com/Diwamoto/docker-lamp
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/24 07:06 編集
2019/10/24 08:05
2019/10/25 14:27