How to setup Apache SSL (Self-signed Certificate) on Ubuntu 9.04

  1. Install openssl
    # sudo apt-get install openssl
  2. Create a serect key (e.g. server.key)
    # sudo openssl genrsa -des3 -out server.key 1024
  3. Create a public key (e.g. server.csr)
    # sudo openssl req -new -key server.key -out server.csr
  4. Create a signed certificate(e.g. server.crt / Expiration is ten (10) years)
    # sudo openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
  5. Copy the keys to an appropriate directory (Note a permission to copy destination)
    # cp server.crt /etc/ssl/certs/; cp server.key /etc/ssl/private/
  6. Edit /etc/apache2/sites-available/default-ssl # sudo vi /etc/apache2/sites-available/default-ssl # Comment out the following two lines: # SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem # SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    1. Install openssl
      # sudo apt-get install openssl
    2. Create a serect key (e.g. server.key)
      # sudo openssl genrsa -des3 -out server.key 1024
    3. Create a public key (e.g. server.csr)
      # sudo openssl req -new -key server.key -out server.csr
    4. Create a signed certificate(e.g. server.crt / Expiration is ten (10) years)
      # sudo openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
    5. Copy the keys to an appropriate directory (Note a permission to copy destination)
      # cp server.crt /etc/ssl/certs/; cp server.key /etc/ssl/private/
    6. Edit /etc/apache2/sites-available/default-ssl # sudo vi /etc/apache2/sites-available/default-ssl # Comment out the following two lines: # SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem # SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

Ubuntu 9.04 で、Apache2 の SSL を有効にする(オレオレ証明の設定方法)。

手順としては次の通り。
  1. openssl をインストール。
    # sudo apt-get install openssl
  2. 秘密鍵を作る(仮に server.key としよう)。
    # sudo openssl genrsa -des3 -out server.key 1024
  3. 公開鍵を作る(server.csr としよう)。
    # sudo openssl req -new -key server.key -out server.csr
  4. 署名付の証明書を作る(server.crt としよう。有効期間はオレオレなので 10年くらいでいいだろう^^;)。
    # sudo openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
  5. 適切なディレクトリにコピー(コピー先のパーミッション注意)。
    # cp server.crt /etc/ssl/certs/; cp server.key /etc/ssl/private/
  6. /etc/apache2/sites-available/default-ssl を編集する。 # sudo vi /etc/apache2/sites-available/default-ssl
    手順としては次の通り。
    1. openssl をインストール。
      # sudo apt-get install openssl
    2. 秘密鍵を作る(仮に server.key としよう)。
      # sudo openssl genrsa -des3 -out server.key 1024
    3. 公開鍵を作る(server.csr としよう)。
      # sudo openssl req -new -key server.key -out server.csr
    4. 署名付の証明書を作る(server.crt としよう。有効期間はオレオレなので 10年くらいでいいだろう^^;)。
      # sudo openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
    5. 適切なディレクトリにコピー(コピー先のパーミッション注意)。
      # cp server.crt /etc/ssl/certs/; cp server.key /etc/ssl/private/
    6. /etc/apache2/sites-available/default-ssl を編集する。 # sudo vi /etc/apache2/sites-available/default-ssl

SSH で、リモートのサーバにパスワードなしでログインする方法

  1. まず、ローカルのマシンで ssh-keygen というコマンドを使って公開鍵・秘密鍵のペアを作成する。オプションの -t dsa だが、DSA (Digital Signature Algorithm) の説明はここ
    # ssh-keygen -t dsa
  2. 上のコマンドを実行すると、.ssh というディレクトリに、id_dsa と id_dsa.pub という 2つのファイルができあがる。どちらもテキストファイルで、この 2つが鍵ペアとなる。拡張子 .pub はその名の通り公開鍵(public key)だから、こちらの方をリモートのサーバに転送する。 転送の仕方は、
    # ssh-copy-id remote_username@remote_host.com
    または、
    # ssh-copy-id -i ~/.ssh/id_dsa.pub remote_username@remote_host.com
    1. まず、ローカルのマシンで ssh-keygen というコマンドを使って公開鍵・秘密鍵のペアを作成する。オプションの -t dsa だが、DSA (Digital Signature Algorithm) の説明はここ
      # ssh-keygen -t dsa
    2. 上のコマンドを実行すると、.ssh というディレクトリに、id_dsa と id_dsa.pub という 2つのファイルができあがる。どちらもテキストファイルで、この 2つが鍵ペアとなる。拡張子 .pub はその名の通り公開鍵(public key)だから、こちらの方をリモートのサーバに転送する。 転送の仕方は、
      # ssh-copy-id remote_username@remote_host.com
      または、
      # ssh-copy-id -i ~/.ssh/id_dsa.pub remote_username@remote_host.com

Perl で、ssh でリモートのサーバにアクセスしてファイルをアップロード(SCP)する方法 (Net::SSH2)

バックアップのためにリモートのサーバにファイルをコピー(アップロード)したい。 そんな欲求が私の中に生まれた。Linux ではファイルを ssh でコピーするのに scp というコマンドがあるので、早速試してみたのは Net::SCP という Perl のモジュールなのだが、なぜかこのモジュールのメソッドにはパスワードを指定するものがない。ホスト名とユーザー名しか指定しないのだ。ではパスワードはどこにいった?
バックアップのためにリモートのサーバにファイルをコピー(アップロード)したい。 そんな欲求が私の中に生まれた。Linux ではファイルを ssh でコピーするのに scp というコマンドがあるので、早速試してみたのは Net::SCP という Perl のモジュールなのだが、なぜかこのモジュールのメソッドにはパスワードを指定するものがない。ホスト名とユーザー名しか指定しないのだ。ではパスワードはどこにいった?