基本概念
TLS:傳輸層安全協議 Transport Layer Security的縮寫
SSL:安全套接字層 Secure Socket Layer的縮寫
TLS與SSL對於不是專業搞安全的開發人員來講,可以認爲是差不多的,這二者是並列關係
KEY 通常指私鑰。
CSR 是Certificate Signing Request的縮寫,即證書籤名請求,這不是證書,可以簡單理解成公鑰,生成證書時要把這個提交給權威的證書頒發機構。
CRT 即 certificate的縮寫,即證書。
X.509 是一種證書格式.對X.509證書來說,認證者總是CA或由CA指定的人,一份X.509證書是一些標準字段的集合,這些字段包含有關用戶或設備及其相應公鑰的信息。
X.509的證書文件,一般以.crt結尾,根據該文件的內容編碼格式,可以分爲以下二種格式:
PEM - Privacy Enhanced Mail,打開看文本格式,以"-----BEGIN…"開頭, "-----END…"結尾,內容是BASE64編碼.
Apache和*NIX服務器偏向於使用這種編碼格式.
DER - Distinguished Encoding Rules,打開看是二進制格式,不可讀.
Java和Windows服務器偏向於使用這種編碼格式
OpenSSL 相當於SSL的一個實現,如果把SSL規範看成OO中的接口,那麼OpenSSL則認爲是接口的實現。接口規範本身是安全沒問題的,但是具體實現可能會有不完善的地方,比如之前的"心臟出血"漏洞,就是OpenSSL中的一個bug.
Keytool 是一個有效的安全鑰匙和證書的管理工具.
openssl genrsa -des3 -out server.key 2048 # 生成key(帶密碼)
openssl genrsa -out server.key 2048 # 生成key 不帶密碼
openssl req -new -key server.key -out server.csr # 生成csr
keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore # 生成 keystore
keytool -delete -alias testalias -keystore test.keystore # 刪除keystore 中的key
keytool -list -v -keystore test.keystore # 查看keysotre 裏面的信息
keytool -import -alias pds -file server.crt -keystore test.keystore # 將crt 導入到keystore 中
keytool -genkey -file server.key -alias server -validity 36500 -keystore server.keystore # 指定key 生成keystore
openssl x509 -noout -text -in server.crt # 查看證書信息
cat server.key server.crt > server.pem # 合併兩個文件爲pem
參考:
https://blog.51cto.com/11736068/2052425
https://www.cnblogs.com/whatlonelytear/p/5913538.html
https://blog.csdn.net/fhqsse220/article/details/45918829
https://ask.dcloud.net.cn/article/35777
https://blog.csdn.net/meng564764406/article/details/79427687
apache ssl 配置
http://www.jinbuguo.com/apache/manual/mod/mod_ssl.html