OpenSSL S/MIME

S / MIME安全/多功能Internet邮件扩展)是公用密钥 加密MIME数据签名的标准。S / MIME是上的IETF标准跟踪和在多个文档中定义的,最重要的RFC 3369337038503851。它最初是由RSA Data Security开发的,最初的规范使用了IETF MIME规范[1]和事实上的行业标准PKCS#7。 安全消息格式。从那以后,对S / MIME的更改控制已归属IETF,并且该规范现在位于加密消息语法(CMS)上,CMS是在大多数方面与PKCS#7相同的IETF规范。S / MIME功能内置于大多数现代电子邮件软件中,并且可以在它们之间进行互操作。由于它是基于CMS构建的,因此MIME也可以包含高级电子签名。

S/MIME Test Makefile:

# 签名
sign:
	openssl smime -sign -inkey test_smime.pem -signer test_smime.pem -in Makefile -out sign.msg

# 验证签名
verify:
	openssl smime -verify -in sign.msg -noverify

verify2:
	openssl smime -verify -in sign.msg -CAfile test_smime.pem 

# 加密
encrypt:
	openssl smime -encrypt -in Makefile -out enc.msg test_smime.pem

# 解密
decrypt:
	openssl smime -decrypt -in enc.msg -inkey test_smime.pem

# 从 MIME(S/MIME) 消息中提取PKCS#7结构数字信封
smime_to_pkcs7:
	openssl smime -in sign.msg -pk7out -out pkcs7.pem
	openssl pkcs7 -in pkcs7.pem -print_certs -text

smime_to_pkcs7a:
	openssl smime -in testenc.msg -pk7out -out pkcs7.pem
	openssl pkcs7 -in pkcs7.pem -text -out pkcs7.der -outform der
	
trust_eml_cert::
	openssl smime -pk7out -in trust_smime.eml  -text |openssl pkcs7 -print_certs -text

# 重写签名
resign:
	openssl smime -resign -in sign.msg -signer test_smime_ecc.pem -out sign2.msg