2016-07-21 13 views
1

php-remote-storageサーバーを利用して、remotestorageサーバーをホストするために私のUbuntu Webサーバーを設定しようとしています。Apache SSL Remotestorageサーバーが動作しない

以前はサーバーにSSLを設定していないので、fresh-ish apache2のインストールがあります。私は書簡の指示に従いました。すべての出現を自分自身のサブドメインであるstorage.localに置き換え、sub.example.comと呼ぶことができます。

sub.example.comは、これは、だから私はsub.example.comを参照し、それだけでタイムアウトにother.example.com

のために働くAWSルート53から自分のWebサーバーに向けられています。 Chromeは言う:

This site can’t be reached 

sub.example.com unexpectedly closed the connection. 

Try: 

Reloading the pageChecking the connection 

ERR_CONNECTION_CLOSED 

私は何が間違っているかを知りません。他のすべてのホストされたサイトが機能するので、私はSSLビットで何か間違っていると推測しています。

ありがとうございます。

ジョン

編集:私のデフォルト-ssl.confの(それが来ると同じように、私はそれを変更していない):

<IfModule mod_ssl.c> 
<VirtualHost *:443> 
     ServerAdmin [email protected] 

     DocumentRoot /var/www/html 

     # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, 
     # error, crit, alert, emerg. 
     # It is also possible to configure the loglevel for particular 
     # modules, e.g. 
     #LogLevel info ssl:warn 

     ErrorLog ${APACHE_LOG_DIR}/error.log 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 

     # For most configuration files from conf-available/, which are 
     # enabled or disabled at a global level, it is possible to 
     # include a line for only one particular virtual host. For example the 
     # following line enables the CGI configuration for this host only 
     # after it has been globally disabled with "a2disconf". 
     #Include conf-available/serve-cgi-bin.conf 

     # SSL Engine Switch: 
     # Enable/Disable SSL for this virtual host. 
     SSLEngine on 

     # A self-signed (snakeoil) certificate can be created by installing 
     # the ssl-cert package. See 
     # /usr/share/doc/apache2/README.Debian.gz for more info. 
     # If both key and certificate are stored in the same file, only the 
     # SSLCertificateFile directive is needed. 
     SSLCertificateFile  /etc/ssl/certs/ssl-cert-snakeoil.pem 
     SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key 

     # Server Certificate Chain: 
     # Point SSLCertificateChainFile at a file containing the 
     # concatenation of PEM encoded CA certificates which form the 
     # certificate chain for the server certificate. Alternatively 
     # the referenced file can be the same as SSLCertificateFile 
     # when the CA certificates are directly appended to the server 
     # certificate for convinience. 
     #SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt 

     # Certificate Authority (CA): 
     # Set the CA certificate verification path where to find CA 
     # certificates for client authentication or alternatively one 
     # huge file containing all of them (file must be PEM encoded) 
     # Note: Inside SSLCACertificatePath you need hash symlinks 
     #    to point to the certificate files. Use the provided 
     #    Makefile to update the hash symlinks after changes. 
     #SSLCACertificatePath /etc/ssl/certs/ 
     #SSLCACertificateFile /etc/apache2/ssl.crt/ca-bundle.crt 

     # Certificate Revocation Lists (CRL): 
     # Set the CA revocation path where to find CA CRLs for client 
     # authentication or alternatively one huge file containing all 
     # of them (file must be PEM encoded) 
     # Note: Inside SSLCARevocationPath you need hash symlinks 
     #    to point to the certificate files. Use the provided 
     #    Makefile to update the hash symlinks after changes. 
     #SSLCARevocationPath /etc/apache2/ssl.crl/ 
     #SSLCARevocationFile /etc/apache2/ssl.crl/ca-bundle.crl 

     # Client Authentication (Type): 
     # Client certificate verification type and depth. Types are 
     # none, optional, require and optional_no_ca. Depth is a 
     # number which specifies how deeply to verify the certificate 
     # issuer chain before deciding the certificate is not valid. 
     #SSLVerifyClient require 
     #SSLVerifyDepth 10 

     # SSL Engine Options: 
     # Set various options for the SSL engine. 
     # o FakeBasicAuth: 
     #  Translate the client X.509 into a Basic Authorisation. This means that 
     #  the standard Auth/DBMAuth methods can be used for access control. The 
     #  user name is the `one line' version of the client's X.509 certificate. 
     #  Note that no password is obtained from the user. Every entry in the user 
     #  file needs this password: `xxj31ZMTZzkVA'. 
     # o ExportCertData: 
     #  This exports two additional environment variables: SSL_CLIENT_CERT and 
     #  SSL_SERVER_CERT. These contain the PEM-encoded certificates of the 
     #  server (always existing) and the client (only existing when client 
     #  authentication is used). This can be used to import the certificates 
     #  into CGI scripts. 
     # o StdEnvVars: 
     #  This exports the standard SSL/TLS related `SSL_*' environment variables. 
     #  Per default this exportation is switched off for performance reasons, 
     #  because the extraction step is an expensive operation and is usually 
     #  useless for serving static content. So one usually enables the 
     #  exportation for CGI and SSI requests only. 
     # o OptRenegotiate: 
     #  This enables optimized SSL connection renegotiation handling when SSL 
     #  directives are used in per-directory context. 
     #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire 
     <FilesMatch "\.(cgi|shtml|phtml|php)$"> 
         SSLOptions +StdEnvVars 
     </FilesMatch> 
     <Directory /usr/lib/cgi-bin> 
         SSLOptions +StdEnvVars 
     </Directory> 

     # SSL Protocol Adjustments: 
     # The safe and default but still SSL/TLS standard compliant shutdown 
     # approach is that mod_ssl sends the close notify alert but doesn't wait for 
     # the close notify alert from client. When you need a different shutdown 
     # approach you can use one of the following variables: 
     # o ssl-unclean-shutdown: 
     #  This forces an unclean shutdown when the connection is closed, i.e. no 
     #  SSL close notify alert is send or allowed to received. This violates 
     #  the SSL/TLS standard but is needed for some brain-dead browsers. Use 
     #  this when you receive I/O errors because of the standard approach where 
     #  mod_ssl sends the close notify alert. 
     # o ssl-accurate-shutdown: 
     #  This forces an accurate shutdown when the connection is closed, i.e. a 
     #  SSL close notify alert is send and mod_ssl waits for the close notify 
     #  alert of the client. This is 100% SSL/TLS standard compliant, but in 
     #  practice often causes hanging connections with brain-dead browsers. Use 
     #  this only for browsers where you know that their SSL implementation 
     #  works correctly. 
     # Notice: Most problems of broken clients are also related to the HTTP 
     # keep-alive facility, so you usually additionally want to disable 
     # keep-alive for those clients, too. Use variable "nokeepalive" for this. 
     # Similarly, one has to force some clients to use HTTP/1.0 to workaround 
     # their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and 
     # "force-response-1.0" for this. 
     BrowserMatch "MSIE [2-6]" \ 
         nokeepalive ssl-unclean-shutdown \ 
         downgrade-1.0 force-response-1.0 
     # MSIE 7 and newer should be able to use keepalive 
     BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown 

</VirtualHost> 
</IfModule> 

そしてremotestorage、PHP-remotestorage SSL confに(上記のリンクを参照してください):

<VirtualHost *:80> 
ServerName storage.local 

ErrorLog ${APACHE_LOG_DIR}/storage.local_error_log 
TransferLog ${APACHE_LOG_DIR}/storage.local_access_log 
CustomLog ${APACHE_LOG_DIR}/storage.local_combined_log combined 
LogLevel warn 

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteCond %{ENV:HTTPS} !=on 
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] 
</VirtualHost> 

<VirtualHost *:443> 
ServerName storage.local 

ErrorLog ${APACHE_LOG_DIR}/storage.local_ssl_error_log 
TransferLog ${APACHE_LOG_DIR}/storage.local_ssl_access_log 
CustomLog ${APACHE_LOG_DIR}/storage.local_ssl_combined_log combined 
LogLevel warn 

DocumentRoot /var/www/php-remote-storage/web 

SSLEngine on 
SSLCertificateFile /etc/ssl/certs/storage.local.crt 
#SSLCertificateChainFile /etc/pki/tls/certs/storage.local-chain.crt 
SSLCertificateKeyFile /etc/ssl/private/storage.local.key 

SSLProtocol    all -SSLv3 -TLSv1 
SSLCipherSuite   ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK 
SSLHonorCipherOrder  on 
SSLCompression   off 

# HSTS (mod_headers is required) (15768000 seconds = 6 months) 
Header always set Strict-Transport-Security "max-age=15768000" 

<Directory "/var/www/php-remote-storage/web"> 
    Options -MultiViews 

    Require all granted 
    #Require local 

    AllowOverride none 

    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php/$1 [L,QSA] 
</Directory> 

# Limit the request body to 8M 
LimitRequestBody 8388608 

XSendFile on 
XSendFilePath /var/www/php-remote-storage/data/storage 

# Pass through the "Authorization" header 
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 
</VirtualHost> 
+0

あなたのSSL設定ファイルコードを入力してください –

答えて

1

私はそれをやってもいくつか問題がありました。私の問題のいくつかは、次の理由によるものでした:

実際のホスト名で 'ServerName storage.local'を置き換える必要があります。その証明書は他のホスト名では失敗します。

また、SSL暗号化キーを生成していない場合は、設定ファイルで指定された証明書をロードしようとすると、apache2サーバーはロードに失敗します。具体的に:また

SSLCertificateFile /etc/ssl/certs/storage.local.crt 
SSLCertificateKeyFile /etc/ssl/private/storage.local.key 

は、あなたがこれらの手順を観察した後には/ var/www /ののphp-リモート・ストレージ/ウェブ

異なるのDocumentRootを指定するさまざまなウェブサイト(a2dissite)を無効にしたい、私が得ましたそれは走っている。

今、別のDocumentRootフォルダを使用して、同じポート(443)でいくつかの別名(server.com/nextcloudとserver.com/など)を使用して、2つのWebサービスを同時にホストする方法を知りたかったのです。プライベートストア)。

関連する問題