ぐぐると大量に出てくるので、ステップのみ。
アラート用に 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 の末尾に鍵マークが出ます。