2017-06-09 10 views
0

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の問題に対処する準拠する証明書を作成することができる厄介な方法はありますか?

+0

*** 'CN = my-local-host' ***はおそらく間違っています。ホスト名は常に* SAN *に入ります。 * CN *内に存在する場合は、* SAN *にも存在する必要があります(この場合は2回リストする必要があります)。詳細なルールと理由については、[証明機関との証明書署名要求の署名方法](http://stackoverflow.com/a/21340898/608639)および[opensslによる自己署名証明書の作成方法]( http://stackoverflow.com/q/10175812/608639)また、自己署名証明書を適切なトラストストアに配置する必要があります。 – jww

+0

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

答えて

0

私はちょうどこのポストからの修正を見つけることができました:Fixing Chrome 58+ [missing_subjectAltName] with openssl when using self signed certificates。著者に感謝します。

だからここに私が働いていたことをやったことだ:

まず、我々は我々が以前から作成されたすべてのファイルを削除します。

第二に、私たちは私たちの作業ディレクトリ/Applications/XAMPP/xamppfiles/apache2/sslでこれらの2つのファイルを作成します。

まずファイル - 次の内容をmy-local-host.csr.cnf

[req] 
default_bits = 2048 
prompt = no 
default_md = sha256 
distinguished_name = dn 

[dn] 
C=NG 
ST=Lagos 
L=Ikeja 
O=Local, LLC 
OU=Tech 
[email protected] 
CN = my-local-host 

注:すべてのフィールドが無い空白すなわち価値を持っていることを確認してくださいエントリ。

セカンドファイル - 次の内容をmy-local-host.v3.ext:第三

authorityKeyIdentifier=keyid,issuer 
basicConstraints=CA:FALSE 
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment 
subjectAltName = @alt_names 

[alt_names] 
DNS.1 = localhost 
DNS.2 = my-local-host 

、次のコマンドを実行します。

sudo openssl genrsa -des3 -out rootCA.key 2048 
sudo openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem 
openssl req -new -sha256 -nodes -out my-local-host.csr -newkey rsa:2048 -keyout my-local-host.key -config <(cat my-local-host.csr.cnf) 
sudo openssl x509 -req -in my-local-host.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out my-local-host.crt -days 500 -sha256 -extfile my-local-host.v3.ext 

注:私はsudoで3番目のコマンドを実行してみましたが、私はエラーを得ていました何らかの理由で、私はそれなしでこれを実行することを示唆したいくつかの情報をオンラインで見つけ、それは私のために働いた。

あなたはこのすべてをやった後、次のコマンドを実行します。

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain my-local-host.crt 

そして最後には、Apacheを再起動します。

SSLの問題を解決するのに役立ちます。

関連する問題