在Debian系統上使用OpenSSL生成證書,通常涉及創建自簽名證書或為Web服務器(如Apache或Nginx)生成SSL/TLS證書。以下是詳細步驟:
安裝OpenSSL(如果尚未安裝):
sudo apt update
sudo apt install openssl
生成私鑰:
openssl genpkey -algorithm RSA -out private.key -aes256
這將生成一個2048位的RSA私鑰,并使用AES-256加密保護。
生成證書簽名請求(CSR):
openssl req -new -key private.key -out certificate.csr
在提示時輸入相關信息,如國家、組織名稱等。
生成自簽名證書:
openssl x509 -req -days 365 -in certificate.csr -signkey private.key -out certificate.crt
這將生成一個有效期為365天的自簽名證書。
生成私鑰:
sudo openssl genpkey -algorithm RSA -out /etc/ssl/private/apache-selfsigned.key -aes256
生成證書簽名請求(CSR):
sudo openssl req -new -key /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.csr
生成自簽名證書:
sudo openssl x509 -req -days 365 -in /etc/ssl/certs/apache-selfsigned.csr -signkey /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
配置Apache使用SSL:
編輯Apache的SSL配置文件(通常位于/etc/apache2/sites-available/default-ssl.conf),確保以下內容正確配置:
<VirtualHost *:443>
ServerName yourdomain.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>
啟用SSL站點并重啟Apache:
sudo a2ensite default-ssl
sudo systemctl restart apache2
生成私鑰:
sudo openssl genpkey -algorithm RSA -out /etc/ssl/private/nginx-selfsigned.key -aes256
生成證書簽名請求(CSR):
sudo openssl req -new -key /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.csr
生成自簽名證書:
sudo openssl x509 -req -days 365 -in /etc/ssl/certs/nginx-selfsigned.csr -signkey /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
配置Nginx使用SSL:
編輯Nginx的SSL配置文件(通常位于/etc/nginx/sites-available/default),添加或修改以下內容:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
}
啟用SSL站點并重啟Nginx:
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
通過以上步驟,你可以在Debian系統上使用OpenSSL生成自簽名證書或為Web服務器生成SSL/TLS證書。