Khi làm việc với các network đòi hỏi security, nếu chúng ta request tới các trang sử dụng HTTPS, chúng ta thường sẽ gặp những vấn đề liên quan đến SSL certificate, ví dụ của mình như sau:
1 2 3 4 5 6 7 |
[docker@minishift ~]$ curl https://auth.docker.io curl: (60) Peer's certificate issuer has been marked as not trusted by the user. More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificate verification by default, using a "bundle" of Certificate Authority (CA) public keys (CA certs). If the default bundle file isn't adequate, you can specify an alternate file using the --cacert option. If this HTTPS server uses a certificate signed by a CA represented in the bundle, the certificate verification probably failed due to a problem with the certificate (it might be expired, or the name might not match the domain name in the URL). If you'd like to turn off curl's verification of the certificate, use the -k (or --insecure) option. |
Để giải quyết lỗi này, việc chúng ta cần làm là sẽ download certificate cho trang web đó và lưu vào Trusted Certificate Authority của hệ điều hành.
Để làm được điều này, việc đầu tiên là chúng ta sẽ sử dụng một câu lệnh của OpenSSL để lưu certificate của trang web trước, cú pháp của câu lệnh này như sau:
1 |
openssl s_client -showcerts -connect {HOST_NAME}:443 -servername {HOST_NAME} </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > {FILE_NAME}.pem |
Trong đó, HOST_NAME là doman name của trang web mà các bạn đang gặp vấn đề, FILE_NAME là tên của tập tin sau khi chúng ta lưu certificate.
Trong trường hợp của mình, mình sẽ chạy câu lệnh sau:
1 |
openssl s_client -showcerts -connect auth.docker.io:443 -servername auth.docker.io </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > auth.docker.io.pem |
Sau khi đã lưu certificate xong, các bạn cần copy tập tin này vào thư mục /etc/pki/ca-trust/source/anchors/ của CentOS rồi chạy câu lệnh sau để cập nhập Trusted Certificate Authority:
1 |
sudo update-ca-trust extract |
Của mình như sau:
1 2 3 |
sudo cp auth.docker.io.pem /etc/pki/ca-trust/source/anchors/ sudo update-ca-trust extract |
Kết quả sau khi cập nhập certificate: