Postfix/smtpsでメール送信

Ads

鍵と証明書の作成スクリプト

  1. 鍵置き場を /etc/postfix/tls_key として作成
    mkdir /etc/postfix/tls_key
  2. サーバ証明書の作成スクリプトと設定ファイルを作成
    • /etc/postfix/tls_key/itumono
      #!/bin/sh
      
      ##秘密鍵を作成
      if [ ! -f server.key ]; then
              ##パスフレーズ無しでよければ以下
              openssl genrsa -out server.key 1024
              ##パスフレーズを設定するばあいは以下、passphrase:*****
              #openssl genrsa -des3 -out server.key 1024
      fi
      
      ##鍵ファイルの暗号化を解除する(暗号化されてる場合は無言で自動起動が出来ない)
      if [ ! -f server.key ]; then
              openssl rsa -in server.key -out server.key.plain
      fi
      
      ##ちゃんとした証明書を取る場合はcsrを作成してそれを使って証明証を申請した後、正式な証明書が来たらそれをserver.crtとし て保存する
      if [ ! -f server.csr ]; then
              openssl req -new -config config -key server.key -out server.csr
      fi
      
      ##証明書作成
      if [ ! -f server.crt ]; then
              ##自署証明書の場合は以下のコマンドでcrtを作成してしまえばよい
              openssl req -new -x509 -days $((10*365)) -config config -key server.key -out server.crt -set_serial `date +%s`
              ##
              #cat <<EOF > server.crt
              #(正式に貰った証明書)
              #EOF
      fi
      
      ## アプリケーションによってはDER形式の証明書を要求するものもあるのでそれも作っておく
      # (Postfixでは不要)
      #openssl x509 -inform PEM -outform DER -in server.crt -out server.der
      
      ## アプリケーションによっては有用なのでキーと証明書をセットにしたpemファイルも作成しておく
      # (Postfixでは不要)
      #cat server.key >  cert.pem
      #cat server.crt >> cert.pem
      
      ##postfix用にパーミッションを適切に設定する
      chmod 640     server.key server.key.plain server.crt server.der cert.pem
      chgrp postfix server.key server.key.plain server.crt server.der cert.pem
    • /etc/postfix/tls_key/config
      [ req ]
      distinguished_name = req_distinguished_name
      
      [ req_distinguished_name ]
      countryName = Country Name (2 letter code)
      stateOrProvinceName = State or Province Name (full name)
      localityName = Locality Name (eg, city)
      0.organizationName = Organization Name (eg, company)
      1.organizationName = Second Organization Name (eg, company)
      organizationalUnitName = Organizational Unit Name (eg, section)
      commonName = Common Name (eg, YOUR name)
      emailAddress = Email Address
      
      countryName_value = JP
      stateOrProvinceName_value = Chiba
      localityName_value = Kashiwa
      0.organizationName_value = ORE ORE
      1.organizationName_value = # omit
      organizationalUnitName_value = # omit
      commonName_value = localhst
      emailAddress_value = # omit

鍵と証明書作成

config を適当に修正してから以下の手順で作成

  1. 鍵と証明書を作成
    cd /etc/postfix/tls_key
    sh itumono
  2. 作り直すには
    cd /etc/postfix/tls_key
    rm -f server.*
    sh itumono

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS