开元旗牌

锐安盾-网站安全加速服务

中国站

联系我们

400-002-9968

博客 > 【OpenSSL经验分享】OpenSSL技巧和常见命令

【OpenSSL经验分享】OpenSSL技巧和常见命令

  • 标签:
  • OpenSSL
  • SSL

浏览量:4918次评论:0次

作者:Claire时间:2018-09-06 03:37:23

OpenSSL是一个多用途的、跨平台的密码工具,能够提供创建SSL套接层的库,以及一套用于管理SSL网站的强大的工具。以下是在使用OpenSSL时,你可能需要执行的一些常见的任务。


生成证书请求


获取签名SSL证书涉及到大量的业务验证流程。为了生成证书签名请求(CSR),请执行以下命令。


openssl req -new -newkey rsa:1024 -nodes -keyout key.pem -out req.pem


让我们回顾一下命令:



  • req激活处理证书请求签名的部分openssl

  • -new生成一个新的请求

  • -newkey生成一个新的私有密钥

  • Rsa:1024 1024是私有密钥的位长度。你也可以使用2048和512或更短的密钥,但是请注意,密钥的强队应当与你的证书机构提供给你的服务类型相匹配。

  • -nodes没有数据加密标准,可以在没有密码保护的情况下,存储私有密钥。尽管这不是最好的做法,但是许多人都没有设置密码或在之后再移除它,因为拥有密码保护密钥的服务在没有输入密码的情况下,是不能自动重启的。

  • -keyout key.pem在一个名为key.pem的文件中存储私有密钥

  • -out req.pem在一个名为key.pem的文件中存储证书请求


这一命令将以交互方式运行,并向你询问大量的问题,请注意,你的证书机构将会再次和交叉确认你的答案,同时你的答案必须与有关你的公司的注册信息的其他合法文档相一致。以下是提交正确答案的一些技巧。


填写你的公司所在国家的国家代码(两个字母),如果你不确定使用哪个代码,请咨询wikipedia。


Country Name (2 letter code) [AU]:


美国州名,对于其他国家为大的管理区域:


State or Province Name (full name) [Some-State]:


开元旗牌


Locality Name (eg, city) []:


公司全名,请从你的公司注册表中把这一名字复制过来。使用&而不是“和”,诸如这样的一个差别可能会使你的请求遭到拒绝。


Organization Name (eg, company) [Internet Widgits Pty Ltd]:


公司子部门或产品名


Organizational Unit Name (eg, section) []:


你的域名,如果是通配符证书,使用星号,像这样:*.mycompany.com


Common Name (eg, YOUR name) []:


用证书显示的电子邮件


Email Address []:


在新生成的请求上使用这一命令来再次确认信息:


openssl req -in req.pem -noout -text


将名为key.pem的私有密钥文件保存在一个安全的位置。之后它将被用来配置web服务器。应当将请求文件req.pem发送给你的证书机构,进行签名。


生成自我签名密钥


按以下步骤操作,你可以为一个开发服务器生成自我签名密钥。


创建一个空目录然后进入它。执行以下命令。请注意反向斜线(“\”)允许单条命令跨越若干行。在我们的例子中,它被用来适应这个文件中的命令:


$ openssl req -x509 -days 365 -nodes -newkey rsa:1024 \


              -keyout key.pem -out cert.pem


你可以按enter建,将所有答案设为默认值,除了这一个:


Common Name (eg, YOUR name) []:


输入用于开发服务器的dns记录,作为这个问题的答案。


好了,两个新的PEM文件就将创建好了,“cert.pem”包含你的证书,而“key.pem”包含自我签名密钥。


测试SSL服务器


你可以使用在客户端创建的OpenSSL来连接到web服务器,并显示证书链。将服务器地址和端口替换为你自己的:


$ openssl s_client -connect www.facebook.com:443 -showcerts


以下是一个典型的输出,其中包括了证书链:


CONNECTED(00000003)


depth=1 O = CA, OU = "CA", OU = CA, OU = CA


verify error:num=20:unable to get local issuer certificate


verify return:0


---


Certificate chain


 0 s:/C=US/ST=California/L=Palo Alto/O=mysite/CN=mysite.com


   i:/O=CA/OU=CA/OU=CA/OU=CA


-----BEGIN CERTIFICATE-----


MIIDnzCCAwigAwIBAgIQCSGX4cDpzQPaNSQ2VhCGgTANBgkqhkiG9w0BAQUFADCB


ujEfMB0GA1UEChMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMOVmVy


aVNpZ24sIEluYy4xMzAxBgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2Vy


A .... MANY LINES LIKE THAT .... .... MANY LINES LIKE THAT .... 


gjRaROuWGxfY25KebCQpoBW2PJp3S1JmqHHyxjk4mzr+tzWK0Qn+tlBUy9igtkIh


VybjO+AxBZve1qyJIsVraz8wrw==


-----END CERTIFICATE-----


 1 s:/O=CA/OU=CA/OU=CA/OU=CA


   i:/C=US/O=CA/OU=CA


-----BEGIN CERTIFICATE-----


MIIDgzCCAuygAwIBAgIQRvzrurTQLw+SYJgjP5MHjzANBgkqhkiG9w0BAQUFADBf


MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT


LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw


A .... MANY LINES LIKE THAT .... .... MANY LINES LIKE THAT .... 


OfamggNlEcS8vy2m9dk7CrWY+rN4uR7yK0xi1f2yeh3fM/1z+aXYLYwq6tH8sCi2


6UlIE0uDihtIeyT3ON5vQVS4q1drBt/HotSp9vE2YoCI8ot11oBx


-----END CERTIFICATE-----


---


Server certificate


subject=/C=US/ST=California/L=Palo Alto/O=mysite/CN=mysite.com


issuer=/O=CA/OU=CA/OU=CA/OU=CA


---


No client certificate CA names sent


---


SSL handshake has read 2007 bytes and written 343 bytes


---


New, TLSv1/SSLv3, Cipher is RC4-MD5


Server public key is 1024 bit


Secure Renegotiation IS NOT supported


Compression: NONE


Expansion: NONE


SSL-Session:


    Protocol  : SSLv3


    Cipher    : RC4-MD5


    Session-ID: 244BE55....48F793


    Session-ID-ctx: 


    Master-Key: 18674D2....B3465946941C0C77DF2DE


    Key-Arg   : None


    PSK identity: None


    PSK identity hint: None


    Start Time: 1325335498


    Timeout   : 7200 (sec)


    Verify return code: 20 (unable to get local issuer certificate)


---


你可以将部分输出复制到PEM文件中,并利用验证openssl命令对它们进行进一步检查。

我的评论

还未登录?

微信扫码沟通
微信扫码沟通

微信扫码沟通

售前支持
代理合作
售后支持
return head