質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Q&A

解決済

3回答

11755閲覧

SSLの設定

hidepon

総合スコア206

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

0グッド

0クリップ

投稿2016/05/20 01:23

編集2016/05/20 07:23

SSL証明書を購入して設定を行いました。
うまく再起動が出来たんですが。。。。
http://hogehoge.com/
でアクセスすると

Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.
Hint: https://hogehoge.com:80/

と表示されてしまいます。

基本
http://hogehoge.com/
または
https://www.hogehoge.com/
または
https://hogehoge.com/

hogehoge.comは質問投稿用のダミードメインです。

最終的には
https://hogehoge.com/
に強制的にしようとは思いますが。。。
どのようにしたら良いでしょうか?
初めて作業するのでよくわかっていません
宜しくお願いいたします。

ssl.conf の編集部分
Virtual Hostの部分に
DocumentRoot "/var/www/html"
ServerName www.hogehoge.com

SSLCertificateFile パス/file名
SSLCertificateKeyFile パス/file名
SSLCertificateChainFile パス/file名

を追記しました。
これでサーバを再起動したら
http://hogehoge.com/
で表示されますが、
https://hogehoge.com/
が表示されません。
httpd.confは編集していません。

どこがおかしいのでしょうか?
宜しくお願いいたしあす

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

infrataro

2016/05/20 01:27

情報が少ないので以下の情報をいただけますでしょうか。 OS/WEBサーバーミドルウェア/ みたところ80番ポートに対してもSSLの設定をしてしまっている為 そのようなエラーが発生しているものと思われます。
hidepon

2016/05/20 01:31

Linux CentOS6系 Apache2系です。 80番ポートに対してもSSLの設定をした記憶はないんですが・・・。 初めてするので分かっていないです・・・・ 宜しくお願いいたします。
infrataro

2016/05/20 02:36

「SSLEngine on」80番ポートにかかってると思いますよ。 これ以上はconfファイルを見ないとどうしようもないので、 個別の情報を伏字にしてconfファイル(/etc/httpd/conf.d配下含む)を 共有いただければ解決可能です。
hidepon

2016/05/20 02:49

ssl.confの内容です。 # # This is the Apache server configuration file providing SSL support. # It contains the configuration directives to instruct the server how to # serve pages over an https connection. For detailing information about these # directives see <URL:http://httpd.apache.org/docs/2.2/mod/mod_ssl.html> # # Do NOT simply read the instructions in here without understanding # what they do. They're here only as hints or reminders. If you are unsure # consult the online docs. You have been warned. # LoadModule ssl_module modules/mod_ssl.so # # When we also provide SSL we have to listen to the # the HTTPS port in addition. # Listen 443 ## ## SSL Global Context ## ## All SSL configuration in this context applies both to ## the main server and all SSL-enabled virtual hosts. ## # Pass Phrase Dialog: # Configure the pass phrase gathering process. # The filtering dialog program (`builtin' is a internal # terminal dialog) has to provide the pass phrase on stdout. SSLPassPhraseDialog builtin # Inter-Process Session Cache: # Configure the SSL Session Cache: First the mechanism # to use and second the expiring timeout (in seconds). SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000) SSLSessionCacheTimeout 300 # Semaphore: # Configure the path to the mutual exclusion semaphore the # SSL engine uses internally for inter-process synchronization. SSLMutex default # Pseudo Random Number Generator (PRNG): # Configure one or more sources to seed the PRNG of the # SSL library. The seed data should be of good random quality. # WARNING! On some platforms /dev/random blocks if not enough entropy # is available. This means you then cannot use the /dev/random device # because it would lead to very long connection times (as long as # it requires to make more entropy available). But usually those # platforms additionally provide a /dev/urandom device which doesn't # block. So, if available, use this one instead. Read the mod_ssl User # Manual for more details. SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin #SSLRandomSeed startup file:/dev/random 512 #SSLRandomSeed connect file:/dev/random 512 #SSLRandomSeed connect file:/dev/urandom 512 DocumentRoot "/var/www/html" ServerName hogehoge.com:443 SSLEngine on SSLCertificateFile /etc/httpd/conf/ssl.crt/hogehoge_com.crt SSLCertificateKeyFile /etc/httpd/conf/ssl.key/hogehoge20160519.pem # # Use "SSLCryptoDevice" to enable any supported hardware # accelerators. Use "openssl engine -v" to list supported # engine names. NOTE: If you enable an accelerator and the # server does not start, consult the error logs and ensure # your accelerator is functioning properly. # SSLCryptoDevice builtin #SSLCryptoDevice ubsec ## ## SSL Virtual Host Context ## <VirtualHost _default_:443> # General setup for the virtual host, inherited from global configuration #DocumentRoot "/var/www/html" #ServerName www.example.com:443 # Use separate log files for the SSL virtual host; note that LogLevel # is not inherited from httpd.conf. ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn # SSL Engine Switch: # Enable/Disable SSL for this virtual host. SSLEngine on # SSL Protocol support: # List the enable protocol levels with which clients will be able to # connect. Disable SSLv2 access by default: SSLProtocol all -SSLv2 -SSLv3 # SSL Cipher Suite: # List the ciphers that the client is permitted to negotiate. # See the mod_ssl documentation for a complete list. SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:!LOW # Server Certificate: # Point SSLCertificateFile at a PEM encoded certificate. If # the certificate is encrypted, then you will be prompted for a # pass phrase. Note that a kill -HUP will prompt again. A new # certificate can be generated using the genkey(1) command. SSLCertificateFile /etc/pki/tls/certs/localhost.crt # Server Private Key: # If the key is not combined with the certificate, use this # directive to point at the key file. Keep in mind that if # you've both a RSA and a DSA private key you can configure # both in parallel (to also allow the use of DSA ciphers, etc.) SSLCertificateKeyFile /etc/pki/tls/private/localhost.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/pki/tls/certs/server-chain.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) #SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt # 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 # Access Control: # With SSLRequire you can do per-directory access control based # on arbitrary complex boolean expressions containing server # variable checks and other lookup directives. The syntax is a # mixture between C and Perl. See the mod_ssl documentation # for more details. #<Location /> #SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \ # and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \ # and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \ # and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \ # and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \ # or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/ #</Location> # 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 StrictRequire: # This denies access when "SSLRequireSSL" or "SSLRequire" applied even # under a "Satisfy any" situation, i.e. when it applies access is denied # and no other module can change it. # o OptRenegotiate: # This enables optimized SSL connection renegotiation handling when SSL # directives are used in per-directory context. #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire <Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/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. SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 # Per-Server Logging: # The home of a custom SSL log file. Use this when you want a # compact non-error SSL logfile on a virtual host basis. CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost>
hidepon

2016/05/20 02:50

ちょっと見にくいですね・・スミマセン。本投稿に追記します。
matobaa

2016/05/20 03:17

引用部分は全体を ``` と ``` で囲っていただけると見やすくなります。たぶん。詳しくは編集画面の左下の 「(i) markdown」を参照してください。
hidepon

2016/05/20 03:54

引用の形で書き換えましたが・・・イマイチですね・・・。 http://hogehoge.com/ でアクセスできました。 しかし https://hogehoge.com/ でアクセスできません。 引き続きお願いいたします。
matobaa

2016/05/20 05:01

開始タグの ``` が一つ少ないように見えます。あと、開始タグ/終了タグの前後で改行してみてください。 http://hogehoge.com/ でアクセスできるようになったバージョンの httpd.conf と ssl.conf を提示いただければ、次のステップに進めるかと思います。ええと、httpd.conf が存在してなかったりしますか? 一つ上のディレクトリにあるかもしれません。
guest

回答3

0

いまいち最終ゴールが不明確ですが、
「:80 では httpで、 :443 では https でアクセスしてエラーが出ないようにしたい」
を実現することを想定して。

提示された設定をかいつまむと、

ssl.conf

1SSLEngine on 2<VirtualHost _default_:443> 3 SSLEngine on 4</VirtualHost>

と設定されていますが、挙動からは、前者の SSLEngine on が :80 に対しての設定として効いてしまっているように見えます。

もしかして、このほかに httpd.conf があって、こんなふうに書いていませんか:

httpd.conf

1Listen 80 2Include ssl.conf

投稿2016/05/20 03:08

編集2016/05/20 03:12
matobaa

総合スコア2493

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hidepon

2016/05/20 04:08

ご返答有難うございます。 記述を変更して http://hogehoge.com/ でアクセスできるようになりました。 しかし https://hogehoge.com/ でアクセスが出来なくなりました。 変更点 1つ目の SSLEngine on  を削除 ・ご提示の Listen 80 Include ssl.conf これは記述していません。 宜しくお願いいたします。
matobaa

2016/05/20 05:03

うーん。http://hogehoge.com/ でアクセスできるということは、どこかで Listen 80 と設定されているはずなんですが。一つうえのフォルダにあるかも。
TaichiYanagiya

2016/05/20 07:50

RHEL/CentOS 系と推測します。 ssl.conf へ設定を追加したと思いますが、追加した場所が間違っています。 <VirtualHost _default_:443> 〜 </VirtualHost> ブロック内に設定を追加/変更してください。 「SSLEngine on」はデフォルトで設定済みです。 DocumentRoot, ServerName 設定を追加します。 SSLCertificateFile, SSLCertificateKeyFile はサンプルのものが設定されていますので、自身の証明書、秘密鍵ファイルのパスに置き換えます。
hidepon

2016/05/20 09:00

ご返答有難うございます。 >RHEL/CentOS 系と推測します。 CentOS6です。 ><VirtualHost _default_:443> 〜 </VirtualHost>に記述 記述場所を変更しました。 >「SSLEngine on」はデフォルトで設定済みです ご指摘の通りです。 >DocumentRoot, ServerName 設定を追加します。 下記のとおり記述しました DocumentRoot "/var/www/html" ServerName www.hogehoge.com ※hogehogeは仮です。 >SSLCertificateFile, SSLCertificateKeyFile はサンプルのものが設定されていますので、自身の証明書、秘密鍵ファイルのパスに置き換えます。 SSLCertificateFile パス/file名 SSLCertificateKeyFile パス/file名 と変更しました。 そして再起動をしても https://hogehoge.com/ でページが表示されません。 httpd.confの編集は必要でしょうか? 宜しくお願いいたします。
guest

0

ベストアンサー

httpd -t で書式チェックをしてください。「Syntax OK」ならば OK です。

curl -k https://127.0.0.1/ で localhost から接続できるか確認ください。
接続できないなら、ログ(/var/log/httpd/error_log, /var/log/httpd/ssl_error_log)を確認ください。
接続できるなら、ファイアーウォール(iptables)で 443番ポートが許可されているか確認ください。

投稿2016/05/20 09:21

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hidepon

2016/05/20 10:06

httpd -t での書式は[Syntax OK]でした。 curl コマンドでの接続でWEBページの取得ができているのでOKでしょうか?? ブラウザで接続したときにssl_error_logに 「RSA server certificate CommonName (CN) `hogehoge.com' does NOT match server name!?」 と表示されます。 どのように対処すればよいでしょうか?
TaichiYanagiya

2016/05/20 10:52

「ServerName www.hogehoge.com」と証明書の「CN=hogehoge.com」が合っていないです。 証明書に合わせて「ServerName hogehoge.com」としてください。 今の状態でもブラウザで表示できるはずですが、ブラウザにはどのようなエラーが出ますか? サーバー側に中間証明書(SSLCertificateChainFile)を設定する必要があるのかもしれません。
hidepon

2016/05/21 07:57

ご返答有難うございます。 http://hogehoge.com https://hogehoge.com ともにアクセスできました。 iptableの設定が必要のようでした。 vpsを構築してのインストールだったのでポートを開放できていなかったです。 COMODOから中間証明書の説明が無いのですが、無くても問題ないのでしょうか?
hidepon

2016/05/21 11:08

スミマセン。検索していたら中間証明書の情報がありました。添付されていた内容の残りの3ファイルを結合するとのことでした。 お騒がせしました。 COMODO社の情報が少なくて苦労しました・・・。
guest

0

httpサイトへのアクセスをhttpsサイトへリダイレクトするということで良いですか?
.htaccessでHTTPアクセスをSSLでリダイレクト(逆もアリ)

投稿2016/05/20 01:46

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/05/20 02:00

httpsの通信を80番ポートで受けたいということでしょうか? nginxなら、listenポートの変更だけでイケそうな気がしますが、apacheだとどうだろ?できそうな気もします。SSLのポートを指定している箇所を変更してみては?
hidepon

2016/05/20 04:22

ご返答有難うございます。 記述を変更して http://hogehoge.com/ でアクセスできるようになりました。 しかし https://hogehoge.com/ でアクセスが出来なくなりました。 宜しくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問