web-dev-qa-db-ja.com

メールの暗号化用に独自のS / MIME証明書を作成できますか?

ここで少し問題があります。これは「正しい質問をしない」場合の可能性があるので、我慢してください。

背景:Apple Mailを使用しています。メールを暗号化/復号化したいのですが、GPGMail(そして明らかにPGP)はSnow Leopardではサポートされていません。

基本的に、電子メールの暗号化で使用するS/MIME証明書を作成する必要があります。証明機関は必要ありませんし、気にしません。簡単で汚い証明書が欲しいだけです。これは可能ですか(OPENSSLなどを使用)、またはプロセス全体がより高い権限に依存して、本格的なCAをセットアップするか、証明書を取得するために会社(Verisign、Thawteなど)と取引するように強制しますか?私の基準はすぐに満足し、無料です。

ベスト。

19
humble_coder

ええ、それはうんざりですApple MailはGPGをサポートしていません。

また、S/MIMEに関する情報や独自の電子メール証明書を生成することは難しいことにも同意します。私が見つけた Paul BramscherのWebページ は、独自の認証局証明書を作成する方法についての良い説明があります。

証明書のプロセスを完全に理解するつもりはありませんが、これは私がつなぎ合わせることができたものです。以下に示す各コマンドの詳細については、opensslマンページを参照してください。

認証局を作成する

最初のステップは、独自の認証局(CA)を作成することです。コマンドは…

# openssl genrsa -des3 -out ca.key 4096
# openssl req -new -x509 -days 365 -key ca.key -out ca.crt

プロンプトに従います。

暗号化された電子メールのすべての受信者にCAの証明書(つまりca.crtの内容)を発行する必要があります。暗号化された電子メールが信頼されるように、受信者はCA証明書をインストールして信頼する必要があります。インストールは、使用するメールクライアントごとに異なります。

あなたの場合、CAの証明書をApple Keychainに追加する必要があります。CA証明書をインポートして信頼する方法については、Appleキーチェーン。

個人の電子メール証明書要求の作成

次に、証明書要求を作成する必要があります。メールを送信するメールアドレスごとに1つ作成します。次のコマンドを実行します…

# openssl genrsa -des3 -out humble_coder.key 4096
# openssl req -new -key humble_coder.key -out humble_coder.csr

プロンプトに従います。

認証局が証明書リクエストに署名する

個人証明書はCAによって署名される必要があります。この場合、あなた!

# openssl x509 -req -days 365 -in humble_coder.csr -CA ca.crt -CAkey ca.key \
  -set_serial 1 -out humble_coder.crt -setalias "Humble Coder's E-Mail Certificate" \
  -addtrust emailProtection \
  -addreject clientAuth -addreject serverAuth -trustout

出力は署名された証明書です。

メールアプリケーションにインポートするための証明書の準備

証明書を.crt(PEM形式)から.p12(PCKS12形式)に変換する必要があります。

# openssl pkcs12 -export -in humble_coder.crt -inkey humble_coder.key \
  -out humble_coder.p12

これで、*.p12*形式の証明書をメールクライアントにインポートできます。あなたの場合、*.p12*ファイルをAppleキーチェーンにインポートしてください。証明書が正しくインストールされると、Apple Mailが証明書の使用を開始します。

より簡単な方法があります

もちろん、独自のCAを作成したら、独自の認証局が作成した証明書を管理する簡単な方法があります。 opensslには…という名前のスクリプトが付属しています

# /usr/lib/ssl/misc/CA.pl

これにより、独自の認証局になるプロセスが簡素化されます。 CA.plのmanページさえあります!

23
Convict
8
Andrew McGregor

他の人が言ったように、答えは明らかにイエスです。 opensslを使用して生成するか、無料のx509電子メール証明書を提供するプロバイダーの1つを使用できます。

そうは言っても、最も重要な質問は、あなたが電子メールを交換する人々は何を使うのですか?私はフリーソフトウェアコミュニティで活動しているので、私がメールを交換する人のほとんどはGPGを使用しています。企業ポリシーの問題として、私が知っている中でS/MIMEを使用しているのは仕事用の電子メールだけです。

メールを送信する相手がS/MIMEを使用していない場合、それらを暗号化することはできず、署名されたメールを確認することもできません。

1
David