你好,游客 登录 注册 搜索
背景:
阅读新闻

Linux下导入SSL证书(配置用于Apache)

[日期:2013-07-31] 来源:Linux社区  作者:mintazoedeng [字体: ]

OpenSSL下载地址:(http://www.openssl.org/source/)(以最新版本openssl-1.0.1e.tar.gz为例)

推荐阅读:

通过OpenSSL提供FTP+SSL/TLS认证功能,并实现安全数据传输 http://www.linuxidc.com/Linux/2013-05/84986.htm

基于OpenSSL实现C/S架构中的https会话 http://www.linuxidc.com/Linux/2013-05/84477.htm

OpenSSL:构建CA的过程并实现web服务基于https访问的网络架构 http://www.linuxidc.com/Linux/2013-04/83088.htm

一、安装/升级OpenSSL
首先确认是否已安装过openssl
[root@openssl-1.0.1e]#openssl version -a
如果已经安装过,则根据需要版本看是否需要升级,如果没有安装过,则使用全新安装方法进行安装。
1、全新安装
[root@localhost media]#wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
[root@localhost media]#tar -xzvf openssl-1.0.1e.tar.gz
[root@localhost openssl-1.0.1e]#cd openssl-1.0.1e
[root@localhost openssl-1.0.1e]#./config -prefix=/usr/local/ssl //指定安装路径。不指定时,默认路径也为/usr/local/ssl
[root@localhost openssl-1.0.1e]#make
[root@localhost openssl-1.0.1e]#make install
安装完后确认
[root@openssl-1.0.1e]#openssl version -a
2、升级安装时
如果已经安装了OpenSSL,但需要升级时,操作如下:
a,按照全新安装步骤执行安装
b,更新关联文件
[root@localhost openssl-1.0.1e]#mv /usr/bin/openssl /usr/bin/openssl.OFF

[root@localhost openssl-1.0.1e]#mv /usr/include/openssl /usr/include/openssl.OFF //**根据安装方法不同,该文件夹的路径可能会不同,可能会是 /usr/lib64/openssl. **//

[root@localhost openssl-1.0.1e]#ln –s /usr/local/ssl/bin/openssl/usr/bin/openssl
[root@localhost openssl-1.0.1e]#ln –s/usr/local/ssl/include/openssl /usr/include/openssl
//**链接文件的路径[/usr/local/ssl]要和安装时指定的-prefix的路径是一致的。
c,配置库文件搜索路径
[root@localhost openssl-1.0.1e]#echo “/usr/local/ssl/lib” >>/etc/ld.so.conf //** [/usr/local/ssl]要和安装时指定的-prefix的路径是一致的。
[root@localhost openssl-1.0.1e]#ldconfig –v //**小写字母v
d,确认版本信息
[root@localhost openssl-1.0.1e]#opensslvision -a
确认出现的版本和安装日期和我们进行的最新信息相同


二、制作SSL证书
1、创建密钥文件存放位置
[root@localhost openssl-1.0.1e]#cd /usr/local/httpd-2.1.15/conf //rpm安装的Apache时,路径为/etc/httpd/conf/
[root@localhost conf]#mkdir ssl.crt
[root@localhost conf]#cp /usr/local/openSSL/ssl/misc/CA.sh ssl.crt/

2、制作根证书

 

a、[root@localhostssl.crt]#./CA.sh -newca

-------------------------------------------------------------

CAcertificate filename (or enter to create)
回车创建新文件,
MakingCA certificate ...
Generatinga 1024 bit RSA private key
....++++++
..++++++
writingnew private key to './demoCA/private/./cakey.pem'
EnterPEM pass phrase:
输入加密密码(ca.pem.password),确认密码后,填写证书信息:
CountryName (2 letter code) [AU]:CN
Stateor Province Name (full name) [Some-State]:XX
LocalityName (eg, city) []:XX
OrganizationName (eg, company) [Internet Widgits Pty Ltd]:XXX
OrganizationalUnit Name (eg, section) []:XX
CommonName (eg, YOUR name) []: XX
EmailAddress []:XX@XX
Pleaseenter the following 'extra' attributes
tobe sent with your certificate request
Achallenge password []:XXXX //可不输入
Anoptional company name []:XXX //可不输入
Usingconfiguration from /usr/local/ssl/openssl.cnf
Enterpass phrase for ./demoCA/private/./cakey.pem:
输入刚才输入的PEM密码(ca.pem.password),一定要一致,否则会出错。
Checkthat the request matches the signature
Signatureok
CertificateDetails:
Serial Number: 14351608714847615801(0xc72b28168be47b39)
Validity
Not Before: Apr 22 11:36:48 2013GMT
Not After : Apr 21 11:36:48 2016GMT
Subject:
countryName = CN
stateOrProvinceName = XX
organizationName = XX
organizationalUnitName = XX
commonName = XX
emailAddress = XX@XX
X509v3 extensions:
X509v3 Subject Key Identifier:
93:CE:87:82:F5:A6:69:1B:77:D9:CF:9E:97:95:FD:51:1B:31:6E:E2
X509v3 Authority Key Identifier:
keyid:93:CE:87:82:F5:A6:69:1B:77:D9:CF:9E:97:95:FD:51:1B:31:6E:E2
X509v3 Basic Constraints:
CA:TRUE
Certificateis to be certified until Apr 21 11:36:48 2016 GMT (1095 days)
Writeout database with 1 new entries
DataBase Updated
---------------------------------------------------------
创建完成。
CommonName :这个名称可以随便取。
生成结果:
demoCA/private/cakey.pem 是CA证书的私钥文件,
demoCA/cacert.pem 是CA证书。

b、制作用于CA签名的CA的私钥和公钥文件
[root@localhostssl.crt]#openssl genrsa -des3 -out ca.key 1024
//要求为key文件输入密码(ca.key.password,随便输入,可以和输入的PEM密码不同)
[root@localhostssl.crt]#openssl req -new -x509 -days 18250-key ca.key -out ca.crt
//要求输入密码以及证书信息。输入的密码要与使用的key文件的密码一致,否则会出错。

同时需要输入证书信息。以完成公钥生成。

 

3、制作服务器证书

a、生成服务器私钥(server.key)
[root@localhost ssl.crt]#openssl genrsa -des3 -out server.key 1024
输入加密密码(server.key.password),用128位rsa算法密钥server.key文件
该密码在部署服务器密钥时需要使用
b、生成服务器证书请求(server.csr)
[root@localhost ssl.crt]#openssl req -new -key server.key -out server.csr
这里要求输入的CommonName必须与通过浏览器访问您网站的 URL 完全相同,否则用户会发现您服务器证书的通用名与站点的名字不匹配,用户就会怀疑您的证书的真实性。可以使域名也可以使IP地址。
c、生成服务器公钥(证书)
[root@localhost ssl.crt]#openssl ca -in server.csr -days 18250 -out server.crt -cert ca.crt -keyfile ca.key

d、查看和验证证书信息

[root@localhost ssl.crt]#openssl x509 -noout -text -in server.crt //查看证书信息
[root@localhost ssl.crt]#openssl verify -CAfile ca.crt server.crt //验证证书信息

一定要保证验证通过,没有报错或警告信息。否则可能会在使用时出错。

 

4、制作客户端证书

a、生成服务器私钥(client.key)
[root@localhost ssl.crt]#openssl genrsa -des3 -out client.key 1024
输入加密密码(client.key.password),用128位rsa算法密钥client.key文件
该密码在部署客户端密钥时需要使用。
b、生成服务器证书请求(client.csr)
[root@localhost conf]#openssl req -new -key client.key -out client.csr
Common Name 可以随便取。
c、生成服务器公钥(证书)
[root@localhost ssl.crt]#openssl ca -in client.csr -days 18250 -out client.crt -cert ca.crt -keyfile ca.key
将证书转换成浏览器可识别的格式:
[root@conf]#openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12

需要输入Export密码,可以和Key文件密码不一样。该密码在客户端部署KEY文件时需要使用。
d、
[root@localhost ssl.crt]#openssl x509 -noout -text -in client.crt //查看证书信息
[root@localhost ssl.crt]#openssl verify -CAfile ca.crt client.crt //验证证书信息

一定要保证验证通过,没有报错或警告信息。否则可能会在使用时出错。

*******生成证书时,如果有无法更新数据库时,则清空demoCA/index.txt:

#vi index.txt
G
:1,.d

保存退出。

接下来请看 http://www.linuxidc.com/Linux/2013-07/88096p2.htm 

linux
相关资讯       Apache SSL  Linux导入SSL证书 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款