SSL证书的生成方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSL证书的生成方法相关的知识,希望对你有一定的参考价值。

在Linux下,我们进行下面的操作前都须确认已安装OpenSSL软件包。



1.创建根证书密钥文件root.key:

[[email protected]:/etc/pki/CA/private]#openssl?genrsa?-des3?-out?root.key?1024
Generating?RSA?private?key,?1024?bit?long?modulus
...............................................................++++++
..........++++++
e?is?65537?(0x10001)
Enter?pass?phrase?for?root.key:????<--输入一个密码
Verifying?-?Enter?pass?phrase?for?root.key:????<--再次输入密码



2.创建根证书的申请文件root.csr:

[[email protected]:/etc/pki/CA]#openssl?req?-new?-key?root.key?-out?root.csr
Enter?pass?phrase?for?root.key:????<--输入前面创建的密码
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)?[XX]:CN????<--输入国家名
State?or?Province?Name?(full?name)?[]:BeiJing????<--输入省份
Locality?Name?(eg,?city)?[Default?City]:haidian????<--输入城市名
Organization?Name?(eg,?company)?[Default?Company?Ltd]:mrlapulga????<--输入公司名
Organizational?Unit?Name?(eg,?section)?[]:????<--可不输入
Common?Name?(eg,?your?name?or?your?server‘s?hostname)?[]:????<--可不输入
Email?Address?[]:[email protected]????<--输入邮件地址
Please?enter?the?following?‘extra‘?attributes
to?be?sent?with?your?certificate?request
A?challenge?password?[]:????<--可不输入
An?optional?company?name?[]:????<--可不输入



3.创建一个为期十年的根证书root.crt:

[[email protected]:/etc/pki/CA]#openssl?x509?-req?-days?3650?-sha1?-extensions?v3_ca?-signkey?private/root.key?-in?root.csr?-out?root.crt
Signature?ok
subject=/C=CN/ST=BeiJing/L=haidian/O=mrlapulga/[email protected]
Getting?Private?key
Enter?pass?phrase?for?private/root.key:????<--输入之前创建的密码



4.创建服务器证书密钥server.key:

[[email protected]:/etc/pki/CA/private]#openssl?genrsa?-des3?-out?server.key?1024
Generating?RSA?private?key,?2014?bit?long?modulus
............+++
................................................+++
e?is?65537?(0x10001)
Enter?pass?phrase?for?server.key:????<--输入一个密码
Verifying?-?Enter?pass?phrase?for?server.key:????<--再次输入密码



5.创建服务器证书的申请文件server.csr:

[[email protected]:/etc/pki/CA]#openssl?req?-new?-key?private/server.key?-out?server.csr
Enter?pass?phrase?for?private/server.key:????<--输入前面创建的密码
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)?[XX]:CN????<--输入国家名
State?or?Province?Name?(full?name)?[]:BeiJing????<--输入省份
Locality?Name?(eg,?city)?[Default?City]:haidian????<--输入城市名
Organization?Name?(eg,?company)?[Default?Company?Ltd]:mrlapulga????<--输入公司名
Organizational?Unit?Name?(eg,?section)?[]:????<--可不输入
Common?Name?(eg,?your?name?or?your?server‘s?hostname)?[]:????<--可不输入
Email?Address?[]:[email protected]????<--输入邮件地址
Please?enter?the?following?‘extra‘?attributes
to?be?sent?with?your?certificate?request
A?challenge?password?[]:????<--可不输入
An?optional?company?name?[]:????<--可不输入



6.创建一个为期一年的服务器证书server.crt:

[[email protected]:/etc/pki/CA]#openssl?x509?-req?-days?365?-sha1?-extensions?v3_req?-CA?root.crt?-CAkey?private/root.key?-CAcreateserial?-in?server.csr?-out?server.crt
Signature?ok
subject=/C=CN/ST=BeiJing/L=haidian/O=mrlapulga/[email protected]
Getting?CA?Private?Key
Enter?pass?phrase?for?private/root.key:????<--输入之前创建的密码



7.创建客户端证书密钥文件client.key:

[[email protected]:/etc/pki/CA/private]#openssl?genrsa?-des3?-out?client.key?1024
Generating?RSA?private?key,?1024?bit?long?modulus
..............................++++++
..................................................++++++
e?is?65537?(0x10001)
Enter?pass?phrase?for?client.key:????<--输入一个密码
Verifying?-?Enter?pass?phrase?for?client.key:???<--再次输入密码



8.创建客户端证书的申请文件client.csr:

[[email protected]:/etc/pki/CA]#openssl?req?-new?-key?private/client.key?-out?client.csr
Enter?pass?phrase?for?private/client.key:????<--输入前面创建的密码
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)?[XX]:CN????<--输入国家名
State?or?Province?Name?(full?name)?[]:BeiJing????<--输入省份
Locality?Name?(eg,?city)?[Default?City]:haidian????<--输入城市名
Organization?Name?(eg,?company)?[Default?Company?Ltd]:mrlapulga????<--输入公司名???
Organizational?Unit?Name?(eg,?section)?[]:????<--可不输入
Common?Name?(eg,?your?name?or?your?server‘s?hostname)?[]:????<--可不输入
Email?Address?[]:[email protected]????<--输入邮件地址
Please?enter?the?following?‘extra‘?attributes
to?be?sent?with?your?certificate?request
A?challenge?password?[]:????<--可不输入
An?optional?company?name?[]:????<--可不输入



9.创建一个有效期为一年的客户端证书client.crt:

[[email protected]:/etc/pki/CA]#openssl?x509?-req?-days?365?-sha1?-extensions?v3_req?-CA?root.crt?-CAkey?private/root.key?-CAcreateserial?-in?client.csr?-out?client.crt
Signature?ok
subject=/C=CN/ST=BeiJing/L=haidian/O=mrlapulga/[email protected]
Getting?CA?Private?Key
Enter?pass?phrase?for?private/root.key:????<--输入之前创建的密码



10.现在可将客户端证书文件client.crt和客户端证书密钥文件client.key合并为客户端的client.pfx安装包文件:

[[email protected]:/etc/pki/CA]#openssl?pkcs12?-export?-in?client.crt?-inkey?private/client.key?-out?client.pfx
Enter?pass?phrase?for?private/client.key:????<--输入之前创建的密码
Enter?Export?Password:????<--创建一个新密码
Verifying?-?Enter?Export?Password:????<--确认密码


client.pfx是配置双向SSL时需要客户端安装的证书文件。


以上是关于SSL证书的生成方法的主要内容,如果未能解决你的问题,请参考以下文章

SSL证书的生成方法

SSL证书的生成方法

jdk自带keytool生成ssl证书安全吗

https如何生成密钥

自己生成的ssl证书与购买的ssl证书有啥区别

如何为公钥固定(SSL 固定)生成 iOS 证书