我想在Ubuntu環境中的本地主機上安裝SSL證書,因爲我無法直接在生產服務器上工作。我必須根據頁面是HTTP還是HTTPS在我的代碼中添加一些條件。如何在Ubuntu的localhost上安裝SSL?
我該怎麼做?
我想在Ubuntu環境中的本地主機上安裝SSL證書,因爲我無法直接在生產服務器上工作。我必須根據頁面是HTTP還是HTTPS在我的代碼中添加一些條件。如何在Ubuntu的localhost上安裝SSL?
我該怎麼做?
通過鍵入啓用Apache模塊:
sudo a2enmod ssl
啓用了SSL後,你必須重新啓動的更改Web服務器被認可:
sudo service apache2 restart
讓我們開始通過在Apache的配置層次結構中創建一個子目錄來放置我們將要製作的證書文件:
sudo mkdir /etc/apache2/ssl
現在,我們必須把我們的密鑰和證書的位置,我們可以通過鍵入都在一個步驟創建它們:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
的問題部分看起來是這樣的:
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:New York City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Your Company
Organizational Unit Name (eg, section) []:Department of Kittens
Common Name (e.g. server FQDN or YOUR name) []:your_domain.com
Email Address []:[email protected]
打開現在以root權限文件:
sudo nano /etc/apache2/sites-available/default-ssl.conf
由於刪除了意見,該文件看起來是這樣的:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin [email protected]
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
最後,它會看起來像這樣。從原始文件修改條目:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin [email protected]
ServerName your_domain.com
ServerAlias www.your_domain.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /var/www/html>
SSLOptions +StdEnvVars
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
保存並在完成後退出文件。 現在我們已經配置了啓用SSL的虛擬主機,我們需要啓用它。
sudo a2ensite default-ssl.conf
然後,我們需要重新啓動Apache來加載我們的新的虛擬主機文件:
sudo service apache2 restart
就是它現在以https ..運行您的網站!
安裝SSL *證書*與安裝SSL本身不同。不要陷入使用'SSL'來表示'SSL證書'的懶惰習慣。這是不一樣的,它只是增加了你的問題的困惑和模糊性。請說明你在說什麼。 – EJP 2015-03-28 04:27:47
這個問題很難理解,因爲語法不好。它被糾正了兩次,並且你兩次都回滾了。你爲什麼喜歡有一個可憐的問題? – TRiG 2015-04-02 11:17:13
首先,如果難以閱讀這個問題,那麼其他開發人員是如何發現這個問題有幫助的。如果你的文法太好,不要去english.stackexchange.com去回答他人的問題。它是一個非常簡單的解釋技術問題,我們只需要解決方案,而不是一個語法上糾正的問題。您的評價顯示您作爲開發人員有多糟糕。 – Ritesh 2015-04-06 03:34:57