自宅サーバ構築MY HOME SERVER
ウエブサーバ(Apache) 外部からアクセステスト アクセス制限 ウエブページ暗号化(SSL) SSL証明書の作成 IEで動作確認 |
- ウエブサーバ(Apache) -
ウエブページを外部に公開するためにApacheをインストールして、設定していきます。iptablesが有効の場合、ポート80番を開放します。外部公開する場合、ルータも同じポートを
開放する必要があります。ポート開放の詳細はルータポート開放についてをご覧ください。
ローカルのクライアントPCから、サーバのIPアドレスでウエブページにアクセスできるように設定します。
bindをインストール・設定済みであれば、ドメイン名でウエブページにアクセスできます。
hoge123:/ # yast2 |
「Network Services」、「HTTP Server」を選択、Enterキーを押します。
「Install」を選択、Enterキーを押します。
サーバのファイアウォールが有効で80番を開放していない場合、「Open Port in Firewall」を選択、Enterキーを押します。
スペースキーを押して、「Enabel PHP5 Scripting」、「Enable Perl Scripting」にチェックを入れ、「Next」を 選択してEnterキーを押します。
「Next」を選択、Enterキーを押します。
「Next」を選択、Enterキーを押します。
「Install」を選択、Enterキーを押します。
Bindの設定でresolv.confを編集していると出るエラーです。そのまま「OK」を選択、Enterキーを押します。
「Quit」を選択、Enterキーを押してコントロールセンターを終了します。
Apacheの編集・保存します。
hoge123:/ # vi /etc/apache2/sysconfig.d/global.conf ServerSignature On ↓ 変更します。 ServerSignature Off ServerTokens OS ↓ 変更します。 ServerTokens Prod hoge123:/ # vi /etc/apache2/default-server.conf Options FollowSymLinks ExecCGI ← 22行目付近、変更します。 AllowOverride All ← 26行目付近、変更します。 hoge123:/ # vi /etc/apache2/httpd.conf DirectoryIndex index.html index.html.var ↓ 167行目付近、変更します。 DirectoryIndex index.html index.html. index.cgi index.php hoge123:/ # vi /etc/apache2/mod_mime-defaults.conf AddHandler cgi-script .cgi .pl ← 137行目付近、追記します。 hoge123:/ # vi /etc/apache2/mod_userdir.conf UserDir public_html ← 26行目付近、先頭の#を削除します。 AllowOverride All ← 30行目付近、変更します。 Options FollowSymLinks ExecCGI ← 31行目付近、変更します。 hoge123:/ # /etc/init.d/apache2 start ← apache2を起動します。 Starting httpd2 (prefork) done hoge123:/ # chkconfig apache2 on |
index.htmlを作成してIEで表示されるか確認します。
hoge123:/ # vi /srv/www/htdocs/index.html 以下の内容を貼り付け・保存します <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>HogeHoge</title> </head> <body> <span style="font-size: 50px;color: #FFCC00;">hogehoge test page</span> </body> </html> |
IEを開き、アドレスバーに192.168.0.10か、hoge123.dip.jp と入力します。 下図のように表示されます。
cgiが正常動作するか、test.cgiを作成してIEで表示されるか確認します。
hoge123:/ # vi /srv/www/htdocs/test.cgi 以下の内容を貼り付け・保存します #!/usr/bin/perl print "Content-type: text/html\n\n"; print "<html>\n<body>\n"; print "<div style=\"width: 100%; font-size: 50px; font-weight: bold; text-align: center;\">\n"; print "<p><font color=\"#FFCC00\">Hogehoge CGI Test </p>"; print "\n</div>\n"; print "</body>\n</html>\n"; - 貼り付け範囲は、この上までです。 - hoge123:/ # chmod 755 /srv/www/htdocs/test.cgi ← ファイルのパミッションを変更します。 |
192.168.0.10/test.cgiまたは、hoge123.dip.jp/test.cgi と入力します。下図のように表示されます。
PHPが動作するか、test.phpを作成してIEで表示されるか確認します。
hoge123:/ # vi /srv/www/htdocs/test.php 以下の内容を貼り付け・保存します <?php phpinfo(); ?> |
192.168.0.10/test.phpまたは、hoge123.dip.jp/test.php と入力します。下図のように表示されます。
これでCGIやPHPプログラムをウエブ上で動作させることが出来る様になりました。PHPベースの掲示板やブログなど 、簡単にカスタマイズするだけで使用できるフリー素材がウエブ上にはたくさんあります。是非、試してみてください。
- 外部からアクセステスト -
ローカルドメインからウエブページにアクセスが出来ても、外部公開している場合、外部からアクセスできるか確認する必要があります。近くにインターネット カフェでもあれば確認できるかもしれませんが、わざわざ行くのも大変です。そこで、 Free Web Surfingを使い、外部プロクシサーバからアクセスしてみます。 こちらをクリックしてください。
Anonymouse をクリックします。English を選択します。
ドメイン名を入力して、Surf Anonymousely をクリックします。
ウエブページが表示されれば、外部に一般公開されている状態です。尚、このサイトはhttpsから始まるアドレスには対応してません。
- アクセス制限 -
ウエブページにアクセス制限をかけて、特定のユーザだけが閲覧できる設定をします。制限をかけるフォルダを作成します。 そのフォルダ内に、認証が成功すれば表示されるウエブページを作成します。
hoge123:/ # mkdir /srv/www/htdocs/testfolder hoge123:/ # vi /srv/www/htdocs/testfolder/test.html <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> ACCESS TEST </body> </html> |
アクセス制限を許可するユーザ、パスワードを作成します。任意のユーザ名hogehogeを作成し、 任意のパスワードを設定します。パスワードは一度、入力後、確認入力が必要です。
hoge123:/ # mkdir /usr/password hoge123:/ # htpasswd2 -c /usr/password/.htpasswd2 hogehoge New password: Re-type new password: Adding password for user hogehoge |
Apacheの設定をします。
hoge123:/ # vi /etc/apache2/conf.d/access.conf 下記内容を貼り付け・保存します |
設定内容の変更を反映させるため、Apacheを再起動します。
hoge123:/ # /etc/init.d/apache2 restart Syntax OK Shutting down httpd2 (waiting for all children to terminate) done Starting httpd2 (prefork) done |
ウエブページにhttp://hoge123.dip.jp/testfolder/test.htmlと入力します。「ユーザ名」にhogehoge、 「パスワード」に先ほど作成したパスワードを入力します。
認証に成功すると、ページが表示されます。
- ウエブページ暗号化(SSL) -
ウエブページを単純に閲覧目的で使用する分には、あまり必要ありませんが、パスワードやクレジットカード情報等を入力してウエブ上で送信する場合
、暗号化が必須です。暗号化されてない情報は平文で流れるため、第3者に読み取られる可能性があります。
そこで暗号化通信を可能にするため、mod SSLをApacheに組み込みます。暗号化通信が可能になると、URLを https//hoge123.dip.jp にして使用することが
出来ます。暗号化通信に使用するポート番号443 はiptables及びルータともに開放ずみであることが前提条件です。既に
ルータポート開放についての
設定をしていれば、443番は開放されています。
- SSL証明書の作成 -
ここでは独自の証明書を作成します。
hoge123:/ # cd /etc/ssl hoge123:/etc/ssl # openssl genrsa -des3 -out server.key 1024 Generating RSA private key, 1024 bit long modulus ..........................++++++ .......................................................++++++ e is 65537 (0x10001) Enter pass phrase for server.key: ← 任意のパスフレーズを入力します。 Verifying - Enter pass phrase for server.key: ← 再入力します。 hoge123:/etc/ssl # openssl rsa -in server.key -out server.key Enter pass phrase for server.key: ← 先ほど設定したパスフレーズを入力します。 writing RSA key hoge123:/etc/ssl # openssl req -new -days 3650 -key server.key -out server.csr You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Some-State]:TOKYO Locality Name (eg, city) []:SHIBUYAKU Organization Name (eg, company) [Internet Widgits Pty Ltd]:HOGEHOGE Organizational Unit Name (eg, section) []:HOGE Common Name (e.g. server FQDN or YOUR name) []:hoge123.dip.jp Email Address []:hogehoge@hoge123.dip.jp Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: ← 何も入力せず、Enterキーを押します。 An optional company name []: ← 何も入力せず、Enterキーを押します。 hoge123:/etc/ssl # openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650 ← 実際には1行で入力します。 Signature ok subject=/C=JP/ST=TOKYO/L=SHIBUYAKU/O=HOGEHOGE/OU=HOGE/CN=hoge123.dip.jp /emailAddress=hogehoge@hoge123.dip.jp Getting Private key hoge123:/etc/ssl # chmod 400 server.* |
sslの設定をします。コントロールセンターを開いてsslを有効にします。(Apacheサービスは一旦、止めます)
hoge123:/ # /etc/init.d/apache2 stop Shutting down httpd2 (waiting for all children to terminate) done hoge123:/ # yast2 |
「Network Services」、「HTTP Server」を選択、Enterキーを押します。
「Continue」を選択、Enterキーを押します。
Tabキーを使って「Listen Prots and Address」まで移動、矢印キーで「Server Modules」を選択、 「ssl Disabled ...」を選択、「Toggle Status」を選択して、Enterキーを押します。
sslがenabledに変わりました。「Finish」を選択、Enterキーを押します。
「OK」を選択、Enterキーを押します。
「Quit」を選択、Enterキーを押します。
Apacheの設定を変更します。
hoge123:/ # vi /etc/apache2/listen.conf NameVirtualHost *:443 ← 最終行に追記します。 hoge123:/ # cd /etc/apache2/vhosts.d hoge123:/etc/apache2/vhosts.d # cp vhost-ssl.template main-ssl.conf hoge123:/etc/apache2/vhosts.d # vi main-ssl.conf #ServerName www.example.com:443 ↓ 32行目付近、先頭の#を削除して変更します。 ServerName hoge123.dip.jp:443 #ServerAdmin webmaster@example.com ↓ 33行目付近、先頭の#を削除して変更します。 ServerAdmin hogehoge@hoge123.dip.jp SSLCertificateFile /etc/apache2/ssl.crt/server.crt ↓ 72行目付近、作成したものに変更します。 SSLCertificateFile /etc/ssl/server.crt SSLCertificateKeyFile /etc/apache2/ssl.key/server.key ↓ 80行目付近、作成したものに変更します。 SSLCertificateKeyFile /etc/ssl/server.key hoge123:/etc/apache2/vhosts.d # cd hoge123:/ # /etc/init.d/apache2 restart Syntax OK Shutting down httpd2 (waiting for all children to terminate) done Starting httpd2 (prefork) done |
- IEで動作確認 -
IEを開いたら、URL に https://hoge123.dip.jp と入力します。自己証明書のため、どうしても証明書エラー 表示が出ます。認証機関から発行された証明書を使用していれば このようなエラー表示は出ません。
「このサイトの閲覧を続行する」を選択します。セキュリティ警告は「はい」をクリックします。
hogehogeのトップページが表示されました。毎回、証明書エラー表示が出るのを解消するには、証明書を インストールします。証明書をインストールしたパソコンだけ、エラー表示が出ません。ただし、上記の セキュリティー警告は出ます。(ポート443番が開放されている必要があります)
「証明書のエラー」をクリックします。
「証明書の表示」をクリックします。
「証明書のインストール」をクリックします。
「次へ」をクリックします。
「証明書をすべて次のストアに配置する」を選択して、「参照」ボタンをクリックします。
「信頼されたルート証明機関」を選択して、「OK」ボタンをクリックします。
「次へ」をクリックします。
「完了」をクリックします。
セキュリティ警告は「はい」を選択します。
「OK」ボタンをクリックします。
※ 自宅サーバ構築(SUSE Linux Enterprise Server 11)に戻る