カテゴリー: PC

  • DTIサーバー構築 Let's encryptをメールサーバーに設定したメモ

    今日は完全にメモ

    Let’s encryptが本格稼働しているとの噂を随分と前に聞いている。
    多分サーバーにはその必要条件のPython2.7をインストールしたはず。

    $ python -VPython 2.7.9

    よし、俺天才!
    Vは大文字だよ。小文字じゃないよ。
    ということで、何だかんだ時は流れていて、letsencrypt-autoではなく、certbot-autoに改名されています。
    なので、

    $ sudo git clone https://github.com/certbot/certbot /opt/cerbot

    で、取ってきて、

    $ sudo ./certbot-auto certonly –agree-tos –rsa-key-size 4096 –renew-by-default -m dnsadmin@mydomain.com –webroot -w /var/www/html/ -d mail.mydomain.com –renew-by-default
    で、証明書作成。
    certonlyを入れないと、runモードになって、apacheの設定を変えに行くらしい。
    -mのメールアドレスは連絡用。
    -wのルートディレクトリは、今回メールの証明書だから意味なし。
    更新は90日ごと必要。

    Postfixの設定を変更

    $ sudo vi /etc/postfix/main.cf

    smtpd_tls_cert_file = /etc/letsencrypt/live/mail.mydomain.com/fullchain.pem
    smtpd_tls_key_file = /etc/letsencrypt/live/mail.mydomain.com/privkey.pem
    Dovecotの設定も変更

    $ sudo nano /etc/dovecot/conf.d/10-ssl.conf

    ssl_cert =
    mail.mydomain.com/fullchain.pem
    ssl_key = mail.mydomain.com/privkey.pemそして、サービスを再起動

    $ sudo service postfix restart
    $ sudo service docevot restart
    Yes!
    去年から止まっていたGmailからのメール取得が復活したぜ!

    で、自動更新は、、、また今度

  • DTIサーバー構築35 「誰?私を見ているのは!」

    Webサーバに誰が来たか?
    それを簡単に調べるために、昔ながらのwebalizerを入れておく。

    $ sudo yum -y install webalizer

    ん?それから 何かしたっけ?
    webminで設定した?
    忘れた。


    でも、ちょっと出来る人は、Google アナリティクスで解析しましょう。


    ★DTIサーバー構築一覧はこちら★

  • DTIサーバー構築34 「新しい場所で再出発!」

    MySQLのバックアップとリストアでデータベースを移行しよう。

    だが!
    バックアップ元のシステムの文字コードがlatin1、データベースがUTF-8となっていて、

    バックアップ先のシステムとデータベースがUTF-8の時、
    文字化けが発生するので、いろいろ大変。
    具体的には、

    $ mysql -u myswluser -p

    バックアップ元の文字コード

    mysql> show variables like ‘collation%’;
    +———————-+——————-+
    | Variable_name        | Value             |
    +———————-+——————-+
    | collation_connection | latin1_swedish_ci |
    | collation_database   | latin1_swedish_ci |
    | collation_server     | latin1_swedish_ci |
    +———————-+——————-+
    3 rows in set (0.00 sec)
    mysql> SHOW VARIABLES LIKE ‘char%’;
    +————————–+—————————-+
    | Variable_name            | Value                      |
    +————————–+—————————-+
    | character_set_client     | latin1                     |
    | character_set_connection | latin1                     |
    | character_set_database   | utf8                      |
    | character_set_filesystem | binary                     |
    | character_set_results    | latin1                     |
    | character_set_server     | latin1                     |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +————————–+—————————-+
    8 rows in set (0.00 sec)

    バックアップ先の文字コード

    mysql> show variables like ‘collation%’;
    +———————-+—————–+
    | Variable_name        | Value           |
    +———————-+—————–+
    | collation_connection | utf8_general_ci |
    | collation_database   | utf8_general_ci |
    | collation_server     | utf8_general_ci |
    +———————-+—————–+
    3 rows in set (0.00 sec)
    mysql> SHOW VARIABLES LIKE ‘char%’;+————————–+—————————-+| Variable_name            | Value                      |+————————–+—————————-+| character_set_client     | utf8                       || character_set_connection | utf8                       || character_set_database   | utf8                       || character_set_filesystem | binary                     || character_set_results    | utf8                       || character_set_server     | utf8                       || character_set_system     | utf8                       || character_sets_dir       | /usr/share/mysql/charsets/ |+————————–+—————————-+8 rows in set (0.00 sec)

    まず、mysqldumpで文字コードにlatin1を指定する。

    $ sudo mysqldump -u username -p –default-character-set=latin1 dbname > dump.sql
     ファイル中のlatin1の部分をutf8に置換。

    $ sed -i -e ‘s/SET NAMES latin1/SET NAMES utf8/g’ dump.sql

    リストア先で

    $ mysql -u mysqluser -p dbname < dump.sql

    ★DTIサーバー構築一覧はこちら★

  • DTIサーバー構築33 「優しく。優しく。」

    SSHでガシガシやるのもいいけど、webminでお気楽にやるのもいいよね。
    と、なんか最近、webminのインストール方法を書いた気もするが。

    DTIサーバーの方は、Cent6だし、Cent7と違うかな。
    と、思ったけど、一緒だった。

    というわけで、以下のページを参考に、インストールしてみた。

    自宅サーバ更新!(9)webmin

    はい。終了。
    ★DTIサーバー構築一覧はこちら★

  • DTIサーバー構築32 「もう、信じられないっ!」

    ある日、Gmailの、サイトで、見つけてしまったさ。
    この世に生きる喜び。ではなく、エラーメッセージを。
    レッドレッド。それはどぎつい、嫌な色だったさ。
    レッドレッド。面倒だから半年ほど放っておいたさ。
    SSL Security Error. [ Help ]
    Server returned error “SSL error: certificate has expired”
    そう。証明書の期限切れ。

    もうすぐ無料のSSL証明書が簡単に取得できる日が来るようだが、それまでは1年更新の無料証明書を何とか使うしかない。

    なので、昔のBLOGの記事を見ながら、まずは、CAcert.orgに行ってみる。
    http://www.cacert.org/
    あれ?BLOGをよく見ると、CAcertでは信用してもらえずに、StartSSLで取得し直してるやん。

    過去の自分に教えられつつ、次のページに行って、右上の「顔写真+鍵」マークでログイン。

    証明書の選択が出てくるので、過去に設定したであろう証明書を選択。
    ログイン後は、まず、「Validations Wizard」タブを選択して、Type「Email Address Validation」を選択して、「Continue >> >>」

    適当なEmailを入力して「Continue >> >>」、待つ。待つ。そして松。

    メールが来たら、「Verification Code」を入力して「Continue >> >>」

    「Finish >> >>」すなわち、終わり。
    でも、目的は達していない。

    「Validations Wizard」タブを選択して、今度はType「Domain Name Validation」を選択して、「Continue >> >>」

    あなたの管理しているドメインを入力して、「Continue >> >>」

    一覧に表示される受信可能なメールアドレスを選択して、「Continue >> >>」
    メールが来たら、「Verification Code」を入力して「Continue >> >>」

    「Finish >> >>」すなわち、終わり。

    でも、まだ目的は達していない。
     

    「Certificates Wizard」タブを選択して、Certificate Target「Web Server SSL/TLS Certificate」を選択して、「Continue >> >>」

    次に秘密鍵を作るんだけど、更新するだけなので、「skip >> >>」

    で、以前作ったCSRをコピペして、「Continue >> >>」

    ない!って時は、
    秘密キーからパスフレーズを削除して、

    # openssl rsa -in pass.key -out nopass.key
    CSRファイルを再度作成、

    # openssl req -new -key nopass.key -out remake.csr

    うまく行けば、再度「Continue >> >>」で、

    Domainにあなたのドメインが表示され、「Continue >> >>」で、
    サブドメインの入力を急かされ、「Continue >> >>」で、

    あれ、同じサブドメインの期限切れ証明書だと、そこまでしなくても良かった?

    「Tool Box」タブの「Retrieve Certificate」で、
    期限が延長されている証明書をコピーして使えばよかったの?
    あれ、どの時点で有効になった?

    で、更に最悪なことに、新しい証明書をサーバーに入れてApacheを再起動しても、エラーで起動できない。。。

    証明書ファイルの内容を確認したり、

    # openssl x509 -text -noout -in domain.pem
    秘密鍵ファイルの内容を確認したり、

    # openssl rsa -text -noout -in domain.key
    CSRファイルの内容を確認したり、

    # openssl req -text -noout -in domain.csr

    秘密鍵と、証明書が一致するか調べたり、、、

    # openssl rsa -noout -modulus -in domain.key | openssl md5
    # openssl x509 -noout -modulus -in domain.crt | openssl md5

    復旧することができず、
    同じサブドメインで証明書を作りなおすことも、既存の証明書を破棄することも無料ではできず。
    結局新しいサブドメインにて、やり直し。

    ま、最終的にGmailさんに怒られなくなったからいいか。
    ★DTIサーバー構築一覧はこちら★