Mac OS X YosemiteにApache(XAMPP経由でインストール)のSSLを設定しようとしています。Mac OS XでXampp ApacheのSSLを設定してChrome上のmissing_subjectAltNameを解決する
「my-local-host」という名前のローカルホスト名が既に設定されているとします。
# 1. Create host key
sudo ssh-keygen -f my-local-host.key
# 2. Create SSL certificate
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout my-local-host.key -out my-local-host.crt
# 3. Create nopass Host Key
sudo openssl rsa -in my-local-host.key -out my-local-host.nopass.key
注:私はセットアップに指示here次のコマンドを実行している本命に続く私は/Applications/XAMPP/xamppfiles/apache2/ssl
ディレクトリ内のすべてのこれをしました。
この後、httpd-vhosts.conf
に仮想ホストリストを追加しました。
<VirtualHost *:443>
ServerName my-local-host
DocumentRoot "/path/to/my-local-host/files"
SSLEngine on
SSLCertificateFile "/Applications/XAMPP/xamppfiles/apache2/ssl/my-local-host.crt"
SSLCertificateKeyFile "/Applications/XAMPP/xamppfiles/apache2/ssl/my-local-host.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/Applications/XAMPP/xamppfiles/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
<Directory "/path/to/my-local-host/files">
ServerSignature Off
Options Indexes FollowSymLinks Includes execCGI
AllowOverride All
Require all granted
</Directory>
ErrorLog "logs/my_local_host_log"
</VirtualHost>
私は、次を使用してシステムのキーチェーンに証明書を追加しました:
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /Applications/XAMPP/xamppfiles/apache2/ssl/my-local-host.crt
そして私は、Apacheを再起動すると、Chromeブラウザでhttps://my-local-hostをロードしようとしました。 Missing [missing_subjectAltName] in ssl certificate (since Chrome 58)のためのコマンドを遊ばし:
This server could not prove that it is my-local-host; its security certificate is from [missing_subjectAltName].
オンラインで検索した後、私がこの適切タイトルの記事を見つけました
58 Chromeからクローム落下のCommonNameのサポートに関連する問題があることが表示されます:ここで私が受信したエラーです残念ながら
sudo openssl req -newkey rsa:2048 -x509 -nodes -keyout my-local-host.key -new -out my-local-host.crt -subj /CN=my-local-host -reqexts SAN -extensions SAN -config <(cat /System/Library/OpenSSL/openssl.cnf ; printf '[SAN]\nsubjectAltName=DNS:my-local-host') -sha256 -days 3650
、私はこれを実行すると、私は次のエラーを取得する:準拠した証明書を作成
error on line -1 of /dev/fd/63
80231:error:02001009:system library:fopen:Bad file descriptor:/SourceCache/OpenSSL098/OpenSSL098-52.40.1/src/crypto/bio/bss_file.c:126:fopen('/dev/fd/63','rb')
80231:error:2006D002:BIO routines:BIO_new_file:system lib:/SourceCache/OpenSSL098/OpenSSL098-52.40.1/src/crypto/bio/bss_file.c:131:
80231:error:0E078002:configuration file routines:DEF_LOAD:system lib:/SourceCache/OpenSSL098/OpenSSL098-52.40.1/src/crypto/conf/conf_def.c:199:
Chromeでmissing_subjectAltName
の問題に対処する準拠する証明書を作成することができる厄介な方法はありますか?
*** 'CN = my-local-host' ***はおそらく間違っています。ホスト名は常に* SAN *に入ります。 * CN *内に存在する場合は、* SAN *にも存在する必要があります(この場合は2回リストする必要があります)。詳細なルールと理由については、[証明機関との証明書署名要求の署名方法](http://stackoverflow.com/a/21340898/608639)および[opensslによる自己署名証明書の作成方法]( http://stackoverflow.com/q/10175812/608639)また、自己署名証明書を適切なトラストストアに配置する必要があります。 – jww
OS XとOpenSSL 0.9.8が古すぎます。それはほとんどのECギアがなく、TLS 1.2を行うことができません。また、[HomebrewがOpenSSLとのリンクを拒否する](http://stackoverflow.com/q/38670295)、[OpenSSLをOSbusで更新する](http://stackoverflow.com/q/15185661)、[インストール方法最新版のopenssl Mac OS X El Capitan](http://stackoverflow.com/q/35129977)、[OS XでのOpenSSLのアップグレード方法](http://apple.stackexchange.com/q/126830)、 [HomeBrewを使用したOpensslのインストールに失敗する](http://superuser.com/q/486389)など – jww