Tôi không phải là quản trị viên hệ thống hoặc quản trị viên mạng (tôi có nền tảng về nhà phát triển phần mềm). Tôi đang gặp một số khó khăn khi cố gắng làm theo hướng dẫn này để triển khai Xác thực ứng dụng khách SLL trên phiên bản Ubuntu 20.04: https://www.makethenmakeinstall.com/2014/05/ssl-client-authentication-step-by-step/
Tôi biết rằng hướng dẫn này khá cũ nhưng nó có vẻ hoạt động tốt ngoại trừ một điểm duy nhất.
Về cơ bản, tôi đã thực hiện tất cả các bước được chỉ ra trong hướng dẫn trước. Tôi tóm tắt chúng ở đây để bạn cũng có thể cho tôi phản hồi nếu tôi hiểu rõ những gì tôi đã làm:
Tạo chứng chỉ của tổ chức phát hành chứng chỉ (CA): vì điều đầu tiên tôi đang tạo chứng chỉ CA. Nếu tôi hiểu rõ thì đó giống như việc tạo cơ quan cấp chứng chỉ cá nhân của riêng tôi (như cacert.org), điều duy nhất là trong trường hợp này không có tổ chức nào xác thực các chứng chỉ do CA này cấp. Cách hiểu này có đúng không?
openssl req -newkey rsa:4096 -keyform PEM -keyout ca.key -x509 -days 3650 -outform PEM -out ca.cer
Về cơ bản lệnh này sẽ hỏi tôi một Cụm mật khẩu PEM mà tôi sẽ sử dụng để tương tác với CA của riêng tôi và một số chi tiết. Tôi đặt các thông số này:
Bạn sắp được yêu cầu nhập thông tin sẽ được kết hợp
vào yêu cầu chứng chỉ của bạn.
Những gì bạn sắp nhập được gọi là Tên phân biệt hoặc DN.
Có khá nhiều trường nhưng bạn có thể để trống
Đối với một số trường sẽ có một giá trị mặc định,
Nếu bạn nhập '.', trường này sẽ để trống.
-----
Tên nước (mã 2 chữ cái) [AU]:IT
Bang hoặc Tỉnh Tên (tên đầy đủ) [Some-State]:.
Tên địa phương (ví dụ: thành phố) []:.
Tên Tổ chức (ví dụ: công ty) [Internet Widgits Pty Ltd]:Notariato
Tên đơn vị tổ chức (ví dụ: bộ phận) []:.
Tên chung (ví dụ: FQDN của máy chủ hoặc tên CỦA BẠN) []:.*
Địa chỉ email []:[email protected]
GHI CHÚ: trong câu trả lời trước, tôi đặt ký tự đại diện (*) cho tên chung để "bỏ qua" nơi chứng chỉ sẽ được sử dụng. Nó có thể hoạt động được không?
Vì vậy, lệnh này tạo ra một ca.cer tệp mà tôi sẽ sử dụng để tạo máy chủ và chứng chỉ ứng dụng khách của mình.
tôi tạo chứng chỉ và khóa SSL máy chủ Apache của tôi: đây chưa phải là chứng chỉ ứng dụng khách (chứng chỉ được ứng dụng khách sử dụng để nói với máy chủ: "Tôi là ứng dụng khách được chứng nhận !!!"), đây là chứng chỉ máy chủ nói với ứng dụng khách: "Tôi là máy chủ chính xác , không phải là một người đàn ông ở giữa". Nó có đúng không?
Để tạo chứng chỉ serer này, trước tiên tôi tạo máy chủ khóa riêng:
openssl genrsa -out server.key 4096
Sau đó, tôi đã sử dụng khóa riêng của máy chủ này để tạo yêu cầu tạo chứng chỉ.
openssl req -new -key server.key -out server.req -sha256
Ngoài ra ở đây nó hỏi mình một số thông số:
Bạn sắp được yêu cầu nhập thông tin sẽ được kết hợp
vào yêu cầu chứng chỉ của bạn.
Những gì bạn sắp nhập được gọi là Tên phân biệt hoặc DN.
Có khá nhiều trường nhưng bạn có thể để trống
Đối với một số trường sẽ có một giá trị mặc định,
Nếu bạn nhập '.', trường này sẽ để trống.
-----
Tên nước (mã 2 chữ cái) [AU]:IT
Bang hoặc Tỉnh Tên (tên đầy đủ) [Some-State]:.
Tên địa phương (ví dụ: thành phố) []:.
Tên Tổ chức (ví dụ: công ty) [Internet Widgits Pty Ltd]:Notariato
Tên đơn vị tổ chức (ví dụ: bộ phận) []:.
Tên chung (ví dụ: FQDN của máy chủ hoặc tên CỦA BẠN) []:*
Địa chỉ email []:[email protected]
GHI CHÚ: cũng ở đây tôi đặt một ký tự đại diện (*) cho tên chung để "bỏ qua" nơi các chứng chỉ sẽ được sử dụng. Nó có thể hoạt động được không?
Sau đó, tôi đã sử dụng yêu cầu tạo chứng chỉ và chứng chỉ CA để tạo chứng chỉ máy chủ:
openssl x509 -req -in server.req -CA ca.cer -CAkey ca.key -set_serial 100 -extensions server -days 1460 -outform PEM -out server.cer -sha256
Sau đó, tôi đang cố cài đặt chứng chỉ vào Apache của mình bằng cách:
Sao chép chứng chỉ CA vào một nơi cố định. Chúng ta sẽ cần chỉ định chứng chỉ CA của mình trong Apache vì đây là CA tự tạo và không phải là CA được bao gồm trong các hệ điều hành ở mọi nơi:
cp ca.cer /etc/ssl/certs/
Sao chép chứng chỉ máy chủ và khóa riêng vào vị trí cố định:
cp server.cer /etc/ssl/certs/server.crt
cp server.key /etc/ssl/private/server.key
Kích hoạt mô-đun SSL trong Apache:
a2enmod ssl
Kích hoạt trang SSL trong Apache và tắt trang HTTP:
a2ensite mặc định-ssl
a2dissite mặc định
Và bây giờ tôi đang gặp sự cố ở lệnh cuối cùng, theo đầu ra của hai lệnh cuối cùng:
andrea@ubuntu:~/cert$ a2ensite default-ssl
Trang web mặc định-ssl đã được kích hoạt
andrea@ubuntu:~/cert$ a2dissite mặc định
LỖI: Trang web mặc định không tồn tại!
Như bạn có thể thấy khi tôi biểu diễn a2dissite mặc định Tôi đang nhận được cái này LỖI: Trang web mặc định không tồn tại! thông báo lỗi.
Tại sao? Nó có nghĩa là gì? Chuyện gì thế? Làm thế nào tôi có thể cố gắng giải quyết lỗi này?