iyuichiの私的開発ログ

渋谷で働くWebエンジニアのログ. Java, Android, iOS, Docker, GCP, AWS, ゲーム開発

Webサーバをたてる ~ Apacheの設定

ConoHaでWebサーバをたててみますよ!

Webサーバいれてなにをするのか?

今回やってみたいことは、

  1. WordPressを使ってみる
  2. Redmineで自分のタスク管理とか
  3. Git, Subversionリポジトリをたてみる

こんなことをやってみたくて構築をします。

ドメインはお名前.comでとってDNSもそちらで管理してます。ドメインとるのって結構安いです。

Webサーバの運用をするだけならグローバルIPがあれば特にドメインなくても大丈夫ですが、

せっかくなので自分の好きなドメインをとってみるのもサイトに愛着が湧きます(笑)

SSLは自分用のRedmineWordPressの管理画面とか自分しか使わない部分での利用を想定しているので自己証明書でとりあえず済ませておきます。

一般公開するサービスでも構築するときにはまた考えることとします!

Apacheをインストールする

Apacheのインストールはyumで行います。

# まずはApache本体(ConoHaで標準のOSで作成したサーバでは入っていたと思います)

yum -y install httpd

# SSLも使うので

yum -y install mod_ssl

SSL自己証明書を作成する

自己証明書を作成します。

  • 秘密鍵(server.key)の作成
  • 公開鍵(server.csr)の作成
  • デジタル証明書(server.crt)の作成

では、やってみます!

# 作業ディレクトリをどこでもよいですが今回は/etc/httpd/conf/に証明書ファイルを作りました

cd /etc/httpd/conf/

# 秘密鍵(server.key)の作成

openssl genrsa -aes128 1024 > server.key

# 公開鍵(server.csr)の作成

openssl req -new -key server.key > server.csr

# デジタル証明書(server.crt)の作成

openssl x509 -in server.csr -days 365 -req -signkey server.key > server.crt

# パスフレーズの入力を省略する場合

mv server.key server.key.back

openssl rsa -in server.key.back > server.key

# パスフレーズを求められるので入力したら完了

証明書の作成はここを参考にしました。

ssl.confに設定を追加する

# ssl.confを編集します

vi /etc/httpd/conf.d/ssl.conf

# ここの設定を変更します

#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

SSLCertificateFile /etc/httpd/conf/server.crt

#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

SSLCertificateKeyFile /etc/httpd/conf/server.key

必要なポートを開ける

デフォルトではファイアウォールで閉じてあってApacheを起動しても外部からの接続ができません。

ファイアウォールを無効にしてしまうような暴挙には出ず、必要なポートだけ穴あけを行います。

現状のiptablesの設定は以下のコマンドで確認しましょう。

iptables -n -L

では、穴あけをします。rootで作業します。

# /etc/sysconfig/iptablesを編集します。

vi /etc/sysconfig/iptables

# 以下の内容を追記

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

# iptablesを再起動します

service iptables restart

Apacheを起動します

Apacheを起動して確認してみます

# Apacheの起動

service httpd start

# 自動起動設定

chkconfig httpd on

外部から接続できるかどうかローカルPCでtelnetを使って接続してみます

telnet {ドメイン名} 80

telnet {ドメイン名} 443

両方ともつながりましたか?

つながらない場合は、iptablesの設定、Apacheが起動しているかなど確認しましょう。

あわせて読む

実はConoHaのサイトにとりあえず、すぐにWebサーバとして利用開始する方法が紹介されてます!

ConoHaで、あっという間にWebサーバーを立ち上げてみる方法