本地進行證書籤名

本地進行證書籤名

之前說過生成公私鑰.pem文件,實際上,我們在工作中一般不會用到.pem文件,我們完全可以在鑰匙串中證書助理直接從證書頒發機構中申請證書,當然本地也可以。

  • 終端生成證書
    首先生成.csr請求證書文件,之後用這個.csr文件去證書頒發機構請求證書。
// 通過private.pem,new一個rsacert.csr文件
$ openssl req -new -key private.pem -out rsacert.csr
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) []:cn
State or Province Name (full name) []:shanghai
Locality Name (eg, city) []:shanghai
Organization Name (eg, company) []:personal
Organizational Unit Name (eg, section) []:personal
Common Name (eg, fully qualified host name) []:personal.com
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
// 可以直接回車,不設置密碼
A challenge password []:

這樣,終端就生成好了一個.csr文件了,接下來繼續用終端申請證書

// x509標準格式,-req簽名,-days 3650 時間,也就是10年,用剛剛生成的csr文件和private.pem私鑰進行簽名,輸出rsacert.crt證書
$ openssl x509 -req -days 3650 -in rsacert.csr -signkey private.pem -out rsacert.crt
Signature ok
subject=/C=cn/ST=shanghai/L=shanghai/O=personal/OU=personal/CN=personal.com/[email protected]
Getting Private key

證書生成好後,顯示證書的信息,下面是生成好的兩個文件

證書文件

這個證書大概一年5000大洋,剛剛的一個操作5W就出去了,哈哈哈。。。那這個證書可以用來幹嘛呢

  • 用途
    比如HTTPS協議,這個協議需要認證這個證書,我們把證書放在服務器,別人去接受。
    當我們查看這個證書時,會發現這個證書還是Base64編碼,所以開發的時候還是不能直接用,需要將其內容提取出來
$ openssl x509 -outform der -in rsacert.crt -out rsacert.der

通過命令,生成一個rsacert.der文件,這個文件主要包含了公鑰和一些信息,再通過這個.der文件生成可以直接用的P12文件,也就是對應這個公鑰的私鑰。

$ openssl pkcs12 -export -out p.p12 -inkey private.pem -in rsacert.crt
Enter Export Password:
Verifying - Enter Export Password:

用剛剛生成crt的private.pem和.crt文件提取出P12文件,提取過程中需要設置密碼,輸入兩次相同的密碼回車後,一個對應的P12文件已經生成了。
證書文件
有了它倆就可以進行加密和解密了,我們iOS開發就是用的這兩個文件。當然這兩個文件不需要都拿到,只用.der就OK,這裏只是爲了演示。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章