感謝這篇文章,確實少走了很多彎路
1在抛、生成RSA密鑰的方法
openssl genrsa -des3 -out key.pem 2048
這個命令會生成一個2048位的密鑰袭景,同時有一個des3方法加密的密碼掂摔,如果你不想要每次都輸入密碼,可以改成:
openssl genrsa -out key.pem 2048
建議用2048位密鑰犁享,少于此可能會不安全或很快將不安全。
2、生成一個證書請求
openssl req -new -key key.pem -out cert.csr
這個命令將會生成一個證書請求想邦,當然两残,用到了前面生成的密鑰key.pem文件
這里將生成一個新的文件cert.csr永毅,即一個證書請求文件,你可以拿著這個文件去數(shù)字證書頒發(fā)機構(即CA)申請一個數(shù)字證書人弓。CA會給你一個新的文件cert.pem沼死,那才是你的數(shù)字證書。
如果是自己做測試崔赌,那么證書的申請機構和頒發(fā)機構都是自己意蛀。就可以用下面這個命令來生成證書:
openssl req -new -x509 -key key.pem -out cert.pem -days 1095
這個命令將用上面生成的密鑰key.pem生成一個數(shù)字證書cert.pem
3、使用數(shù)字證書和密鑰
有了key.pem和cert.pem文件后就可以在自己的程序中使用了健芭,比如做一個加密通訊的服務器
go語言中調(diào)用
package main
import (
"fmt"
"golang.org/x/net/http2"
"net/http"
)
type MyHandler struct {
}
func (h *MyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "hello world!")
}
func main() {
handler := MyHandler{}
server := http.Server{
Addr: "127.0.0.1:80",
Handler: &handler,
}
http2.ConfigureServer(&server, &http2.Server{})
server.ListenAndServeTLS("cert.pem", "key.pem")
}