免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2042 | 回复: 0
打印 上一主题 下一主题

FreeBSD下的OpenSSL应用 [复制链接]

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-12 08:52 |只看该作者 |倒序浏览

OpenSSL
作者Tom Rhodes.
  许多用户可能并没有注意到
FreeBSD
所附带的OpenSSL工具包的功能。OpenSSL提供了建立在普通的通讯层基础上的加密传输层;这些功能为许多网络应用和服务程序所广泛使用。
  对OpenSSL的一些常见用法包括加密邮件客户的身份验证过程, 基于 Web 的交易如信用卡等等。 许多
ports

www/apache13-ssl
, 以及
mail/sylpheed-claws
等等都提供了
编译
进OpenSSL支持的方法。
注意:绝大多数情况下 Ports Collection 会试图使用
security/openssl
除非明确地将WITH_OPENSSL_BASEmake 变量设置为 “yes”。
  FreeBSD 中附带的OpenSSL版本能够支持
安全
套接字层 v2/v3 (SSLv2/SSLv3) 和 安全传输层 v1 (TLSv1) 三种网络协议,并可作为通用的密码学
函数
库使用。
注意:尽管OpenSSL支持IDEA
算法
, 但由于美国专利, 它在默认情况下是不编译的。如果想使用它, 请查阅相应的授权, 如果认为授权可以接受, 则可以在make.conf中设置MAKE_IDEA。
  为应用软件提供证书是OpenSSL最为常用的功能之一。证书是一种能够确保公司或个人有效身份不被伪造的凭据。 如果证书没有被众多 “权威发证机构”, 或CA中的某一个确认,则会产生一个警告。 权威发证机构通常是一家公司, 例如
VeriSign
, 它能够通过签署来证明个人或公司证书的有效性。这个过程是需要付费的, 当然, 这不是使用证书的必要条件; 然而,这样做会让那些比较偏执的用户感到轻松。
14.9.1 生成证书
  为了生成证书, 需要使用下面的命令:
#openssl req -new -nodes -out req.pem -keyout cert.pemGenerating a 1024 bit RSA private key
................++++++
.......................................++++++
writing new private key to 'cert.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:USState or Province Name (full name) [Some-State]:PALocality Name (eg, city) []:PittsburghOrganization Name (eg, company) [Internet Widgits Pty Ltd]:My CompanyOrganizational Unit Name (eg, section) []:Systems AdministratorCommon Name (eg, YOUR name) []:localhost.example.orgEmail Address []:trhodes@FreeBSD.orgPlease enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:SOME PASSWORDAn optional company name []:Another Name
  请注意, 在 “Common Name” 提示后面我们输入的是一个域名。这个提示要求输入服务器的名字, 这个名字今后将用于完成验证过程;如果在这里输入域名以外的内容, 那么证书也就失去其意义了。 您还可以指定一些其他的选项,比如证书的有效期, 以及使用的加密算法等等。 这些选项的完整列表, 可以在
openssl(1)
联机手册中找到。
  在您执行前述命令的目录中将生成两个
文件
。 证书申请, 即req.pem, 可以发给一家发证机构, 它将验证您输入的凭据的真实性,并对申请进行签名, 再把证书返还给您。 第二个文件的名字将是cert.pem, 它包含了证书的私钥, 应被全力保护; 如果它落入别人手中,则可以被用来伪造您 (或您的服务器)。
  如果不需要来自CA的签名,也可以创建自行签名的证书。 首先, 需要生成RSA密钥:
#openssl dsaparam -rand -genkey -outmyRSA.key1024
  接下来, 生成CA密钥:
#openssl gendsa -des3 -outmyca.keymyRSA.key
  然后用这个密钥来创建证书:
#openssl req -new -x509 -days 365 -keymyca.key-outnew.crt
  上述步骤将在当前目录中生成两个新文件: 一个是权威发证机构的签名文件,myca.key; 另一个是证书本身,new.crt。这些文件应该放到同一个目录中, 一般而言, 推荐放到/etc,并且只允许
root
读取。 建议把权限设置为 0700, 这可以通过chmod工具来完成。
14.9.2 使用证书的一个例子
  那么有了这些文件可以做些什么呢? 一个比较典型的用法是用来加密SendmailMTA的通讯连接。这可以解决用户通过本地MTA发送邮件时使用明文进行身份验证的问题。
注意:这个用法可能并不完美, 因为某些MUA会由于没有在本地
安装
证书而向用户发出警告。请参考那些软件的说明了解关于安装证书的信息。
  下面的设置应添加到本地的.mc文件
dnl SSL Options
define(`confCACERT_PATH',`/etc/certs')dnl
define(`confCACERT',`/etc/certs/new.crt')dnl
define(`confSERVER_CERT',`/etc/certs/new.crt')dnl
define(`confSERVER_KEY',`/etc/certs/myca.key')dnl
define(`confTLS_SRV_OPTIONS', `V')dnl
  这里,/etc/certs/是准备用来在本地保存证书和密钥的位置。 最后, 需要重新生成本地的.cf文件。 这一工作可以简单地通过在 目录中执行makeinstall来完成。 接下来, 可以使用makerestart来重新启动Sendmail服务程序。
  如果一切正常的话, 在/var/log/maillog中就不会出现错误提示,Sendmail也应该出现在进程列表中。
  做一个简单的测试, 使用
telnet(1)
来连接邮件服务器:
#telnetexample.com25Trying 192.0.34.166...
Connected toexample.com.
Escape character is '^]'.
220example.comESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT)ehloexample.com250-example.com Hello example.com [192.0.34.166], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN
250-STARTTLS
250-DELIVERBY
250 HELPquit221 2.0.0example.comclosing connection
Connection closed by foreign host.
  如果输出中出现了 “STARTTLS” 则说明一切正常。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/4206/showart_1408522.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP