1.安裝必要的軟體
引用
我用的是apahce2.0.61版,可以直接官方提供的繫結openssl的apache.
檔名是:apache_2.0.61-win32-x86-openssl-0.9.7m.msi
否則單獨安裝windows下的openssl比較麻煩,要麼找到一個第三方的編譯結果,要麼自己編譯
2. 生成伺服器證書
引用
安裝好在bin目錄下有一個 openssl.exe檔案,用來生成證書和金鑰。
1). 生成伺服器用的私鑰檔案server.key
進入conf目錄,執行命令列
openssl genrsa -out server.key 1024
有文件指出使用 openssl genrsa -des3 -out server.key 1024 生成私鑰檔案,這樣生成的私鑰檔案是需要口令的。
Apache啟動失敗,錯誤提示是:Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file .....)
原因是window下的apache不支援加密的私鑰檔案。
2). 生成未簽署的server.csr
進入conf目錄,執行命令列
openssl req -new -key server.key -out server.csr -config openssl.cnf
提示輸入一系列的引數,
......
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:
Email Address []:
.....
注:Common Name必須和httpd.conf中server name必須一致,否則apache不能啟動
啟動apache時錯誤提示為:RSA server certificate CommonName (CN) `Koda' does NOT match server name!?
3). 簽署伺服器證書檔案server.crt
進入conf目錄,執行命令列
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
以上籤署證書僅僅做測試用,真正執行的時候,應該將CSR傳送到一個CA返回真正的用書.網上有些文件描述生成證書檔案的過程比較繁瑣,就是因為
他們自己建立了一個CA中心證書,然後再簽署server.csr.
用openssl x509 -noout -text -in server.crt可以檢視證書的內容。證書實際上包含了Public Key.
3. 配置httpd.conf.
引用
在conf目錄下的ssl.conf檔案是關於ssl的配置,是httpd.conf的一部分。
找到一個443的虛擬主機配置項,如下:
<VirtualHost _default_:443>
SSLEngine On
SSLCertificateFile conf/ssl.crt/server.crt
SSLCertificateKeyFile conf/ssl.key/server.key
#SSLCertificateChainFile conf/ssl.crt/ca.crt // 暫未啟用
#......
DocumentRoot "C:/programs/Apache2/htdocs"
ServerName www.my.com:443
</VirtualHost>
1). 看SSLCertificateFile,SSLCertificateKeyFile兩個配置項,所以應該在conf下建立兩個子目錄ssl.crt, ssl.key,然後把簽署過的證書檔案(.crt)和私鑰檔案(.key)放在相應的目錄
2). 看DocumentRoot,ServerName配置項,ServerName修改為任意你想要得域名,注意:前面生成.csr時輸入的Common Name必須於這裡的ServerName項一致。
這樣啟動apache後,訪問https://www.my.com將訪問C:/programs/Apache2/htdocs目錄下的內容。
但是如果你想保留其他目錄的訪問仍然是http,那麼你應該把
<VirtualHost _default_:443> 也改為 <VirtualHost www.my.com:443>
此時,即便ServerName是任意的,系統仍然正常執行,僅僅Apache log提示"does NOT match server name"
3). 移除註釋行
LoadModule ssl_module modules/mod_ssl.so
注意到ssl.conf的配置都在標籤<IfDefine SSL>中,所以為了使IfDefine 指令有效,執行apache 的時候要加上 -D SSL 引數。
引用
apache -D SSL -k start
詳細出處參考:http://www.jb51.net/article/23973.htm
Apache SSL伺服器配置SSL詳解(轉)
相關文章
- 詳解如何給Tomcat配置Https/ssl證書TomcatHTTP
- 轉【翻譯】怎樣在Ubuntu 12.04上配置Apache SSL證書UbuntuApache
- kafka ssl sasl_ssl 配置Kafka
- Apache伺服器上安裝SSL證書?Apache伺服器
- linux伺服器配置ssl證書Linux伺服器
- SSL伺服器配置評級指南伺服器
- 阿里雲伺服器apache配置SSL證書成功開啟Https的教程阿里伺服器ApacheHTTP
- 伺服器配置ssl證書支援蘋果ATS方法 – HTTPS SSL 教程伺服器蘋果HTTP
- SSL/TLS 握手過程詳解TLS
- Nginx的SSL配置優化 – HTTPS SSL 教程Nginx優化HTTP
- apache 如何避免SSL配置影響原來HTTP的站點配置ApacheHTTP
- SSL證書轉PEM格式 – HTTPS SSL 教程HTTP
- SSL證書格式轉換 – HTTPS SSL 教程HTTP
- 案例:配置apache和nginx的SSL加密傳輸協議ApacheNginx加密協議
- NGINX配置SSL支援Nginx
- SSL基礎知識及Nginx/Tomcat配置SSLNginxTomcat
- 關於SSL裝置的詳解
- apache伺服器全域性配置詳解(全)Apache伺服器
- CentOS6系統Apache環境配置SSL證書教程CentOSApache
- 使用 Apache 反向代理來配置 Laravel-Websocket SSL(WSS 連線)ApacheLaravelWeb
- Apache的配置詳解Apache
- 建立 測試環境 + 配置伺服器ssl證書伺服器
- nginx docker容器配置https(ssl)NginxDockerHTTP
- HTTPS的SSL證書配置HTTP
- Kafka SSL安裝與配置Kafka
- MySQL 5.7配置SSL連線MySql
- SSL錯誤ssl connect error 35的解決方案Error
- apache2啟用SSL(ubuntu22.04)ApacheUbuntu
- Setup SSL using .PFX file on nginx/apache2NginxApache
- 無需瞭解Nginx和SSL能啟動一個帶有SSL的Nginx伺服器Nginx伺服器
- 亞馬遜雲伺服器aws配置ssl https證書亞馬遜伺服器HTTP
- nginx配置ssl加密(單/雙向認證、部分https) – HTTPS SSL 教程Nginx加密HTTP
- HTTPS協議詳解(四):TLS/SSL握手過程HTTP協議TLS
- 詳解Comodo Positive SSL證書及其適用物件物件
- RMQ的SSL配置最佳實踐MQ
- Nginx使用SSL模組配置httpsNginxHTTP
- 如何在 Elasticsearch 中配置 SSL / TLS ?ElasticsearchTLS
- web server apache tomcat11-12-SSL/TLS ConfigurationWebServerApacheTomcatTLS
- Windows伺服器SSL證書建立、安裝及配置方法教程Windows伺服器