ぐぐると大量に出てくるので、ステップのみ。

アラート用に PHS を持っていたけど、廃止になるので iPhone に通知を移行してみる。ついでに暗号化してみる。
Z-Push は "Mobile loop detected! Messages sent to the mobile will be restricted to 1 items in order to identify the conflict" が解消できず、遅すぎたので一先ず見送り。

@icloud.com は PUSH に対応しているから、通知のみ使いたい。

# openssl genrsa 2048 > icloud.key
# openssl req -new -key icloud.key > icloud.csr (訊かれるけど適当で)
# openssl x509 -days 3650 -req -signkey icloud.key < icloud.csr > icloud.crt
# openssl pkcs12 -export -in icloud.crt -inkey icloud.key -certfile icloud.crt -out icloud.pfx (iPhoneの登録時に空のパスワードではダメっぽいので入力したほうがよさそう)

icloud.pfx を iPhone に送る。

添付ファイルをクリックすると、設定のトップの上部に証明書のメニューが表示されるので、進んでインストール。

@icloud.com への通知は Perl からのみなので、ご愛嬌。

#!/usr/local/bin/perl

use Modern::Perl;
use Crypt::SMIME; # MIKAGEさん/ユミルさん++
use Email::Sender::Simple qw(sendmail);
use IO::All;

my $plain = <<~'MAIL';
    From: user@myserver.xx
    To: user@icloud.xx
    Subject: Crypt::SMIME test

    This is a test mail. Please ignore...
    MAIL

my $myserver_key = io("/usr/local/etc/dehydrated/certs/myserver.xx/privkey.pem")->all;
my $myserver_crt = io("/usr/local/etc/dehydrated/certs/myserver.xx/cert.pem")->all;
my $icloud_key   = io("icloud.key")->all;
my $icloud_crt   = io("icloud.crt")->all;

my $encrypted_mime = do {
    my $smime = Crypt::SMIME->new;
    $smime->setPrivateKey($myserver_key, $myserver_crt);

    # my $signed = $smime->sign($plain);
    # print $signed;

    $smime->setPublicKey($icloud_crt);
    $smime->encrypt($plain);
};

sendmail($encrypted_mime);

iPhone でメールを表示すると From の末尾に鍵マークが出ます。

コメントする

perl adv
perl adv