- Tạo chữ ký số certificate authority (CA) và yêu cầu ký:
openssl req -x509 -newkey rsa:4096 -days 365 -nodes -keyout ca-key.pem -out ca-cert.pem -subj "/C=VN/ST=BINHTAN/L=HCM/O=FREELANCER/OU=Education/CN=localhost/[email protected]"
-> -subj có thể thay đổi theo từng environment.
2. Tự ký vào chứng chỉ của chữ ký (self-signed certificate)
openssl x509 -in ca-cert.pem -noout -text
3. Tạo server private key cho server đồng thời yêu cầu ký chứng chỉ cho key này(certificate signing request CSR):
openssl req -newkey rsa:4096 -nodes -keyout server-key.pem -out server-req.pem -subj "/C=VN/ST=BINHCHANH/L=HCM/O=FREELANCER/OU=Computer/CN=localhost/[email protected]"
- Sử dụng chữ ký số CA để ký (param -req -in) chứng chỉ của key server và lấy lại chứng chỉ đã ký:
openssl x509 -req -in server-req.pem -days 60 -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile server-ext.cnf
- Tạo client private key và yêu cầu ký chứng chỉ cho key này (CSR):
openssl req -newkey rsa:4096 -nodes -keyout client-key.pem -out client-req.pem -subj "/C=FR/ST=Alsace/L=Strasbourg/O=PC Client/OU=Computer/CN=localhost/[email protected]"
- Sử dụng chữ ký số CA để ký chứng chỉ của client key và lấy lại chứng chỉ đã ký
openssl x509 -req -in client-req.pem -days 60 -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -extfile client-ext.cnf
- Client tự ký vào chứng chỉ (self-signed certificate):
openssl x509 -in client-cert.pem -noout -text
Note: nội dung trong file server-ext , client-ext có thể thay đổi theo từng môi trường.
Note: openssl req => create certificate authority CSR