# Apache 下啟用 Https
### 通過 OpenSSL 生成 SSL 數字認證
免費 Self-Signed SSL 數字認證用戶請看. 如果你是 SSL付費認證用戶可跳過此步.
~~~
openssl genrsa -out privkey.pem 2048
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
~~~
### 在 Seahub 端啟用 https
假設你已經按照[Apache 下配置 Seahub](#)對 Apache 進行了相關設置.請啟用 mod_ssl
~~~
[sudo] a2enmod ssl
~~~
Windows 下, 你需要在 httpd.conf 中增加 SSL 模塊
~~~
LoadModule ssl_module modules/mod_ssl.so
~~~
接下來修改你的Apache配置文件,這是示例:
~~~
<VirtualHost *:443>
ServerName www.myseafile.com
DocumentRoot /var/www
Alias /media /home/user/haiwen/seafile-server-latest/seahub/media
SSLEngine On
SSLCertificateFile /path/to/cacert.pem
SSLCertificateKeyFile /path/to/privkey.pem
RewriteEngine On
#
# seafile fileserver
#
ProxyPass /seafhttp http://127.0.0.1:8082
ProxyPassReverse /seafhttp http://127.0.0.1:8082
RewriteRule ^/seafhttp - [QSA,L]
#
# seahub
#
RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /seahub.fcgi/$1 [QSA,L,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</VirtualHost>
~~~
### 修改相關配置以使用 https
### ccnet 配置
因為你想使用 https 而非 http,你需要修改`ccnet/ccnet.conf`中`SERVICE_URL`字段的值:
~~~
SERVICE_URL = https://www.myseafile.com
~~~
### seahub_settings.py 配置
~~~
FILE_SERVER_ROOT = 'https://www.myseafile.com/seafhttp'
~~~
### 啟動Seafile和Seahub
~~~
./seafile.sh start
./seahub.sh start-fastcgi
~~~
### 其他說明
閱讀[Seafile 組件](#)會幫你更好的理解 Seafile.
在 Seafile 服務器端的兩個組件:Seahub 和 FileServer. FileServer 通過監聽 8082 端口處理文件的上傳與下載. Seahub 通過監聽 8000 端口負責其他的WEB頁面. 但是在 https 下, Seahub 應該通過 fastcgi 模式監聽8000端口 (運行`./seahub.sh start-fastcgi`). 而且在 fastcgi 模式下, 如果直接訪問`http://domain:8000`,會返回錯誤頁面.
當一個用戶訪問`https://domain.com/home/my/`時, Apache 接受到訪問請求后,通過 fastcgi 將其轉發至 Seahub. 可通過以下配置來實現:
~~~
#
# seahub
#
RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/(seahub.*)$ /seahub.fcgi/$1 [QSA,L,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
~~~
and
~~~
FastCGIExternalServer /var/www/seahub.fcgi -host 127.0.0.1:8000
~~~
當一個用戶在 Seahub 中點擊文件下載鏈接時, Seahub讀取`FILE_SERVER_ROOT`的值,并將其用戶重定向到`https://domain.com/seafhttp/xxxxx/`.`https://domain.com/seafhttp`是`FILE_SERVER_ROOT`的值. 這里,`FILE_SERVER`表示是 Seafile 中只負責文件上傳與下載的的 FileServer 組件.
當 Apache在`https://domain.com/seafhttp/xxxxx/`接收到訪問請求后,它把請求發送到正在監聽`127.0.0.1:8082`的 FileServer 組件,可通過以下配置來實現:
~~~
ProxyPass /seafhttp http://127.0.0.1:8082
ProxyPassReverse /seafhttp http://127.0.0.1:8082
RewriteRule ^/seafhttp - [QSA,L]
~~~
- 介紹
- 概覽
- Seafile 組件
- 研發路線圖
- 常見問題解答
- 修改日志
- 我要參與
- Linux 下部署 Seafile 服務器
- 部署 Seafile 服務器(使用 SQLite)
- 部署 Seafile 服務器(使用 MySQL)
- Nginx 下配置 Seahub
- Nginx 下啟用 Https
- Apache 下配置 Seahub
- Apache 下啟用 Https
- Seafile LDAP 配置
- 開機啟動 Seafile
- 防火墻設置
- Logrotate 管理系統日志
- 使用 Memcached
- 使用 NAT
- 非根域名下部署 Seahub
- 從 SQLite 遷移至 MySQL
- 安裝常見問題
- 升級
- Windows 下部署 Seafile 服務器
- 下載安裝 Windows 版 Seafile 服務器
- 安裝 Seafile 為 Windows 服務
- 所用端口說明
- 升級
- 從 Windows 遷移到 Linux
- 垃圾回收
- 部署 Seafile 專業版服務器
- 下載安裝 Seafile 專業版服務器
- 從社區版遷移至專業版
- 升級
- Amazon S3 下安裝
- OpenStackSwift 下安裝
- Ceph 下安裝
- 配置選項
- 文件搜索說明
- 集群部署
- 集群中啟用搜索和后臺服務
- NFS 下集群安裝
- 常見問題解答
- 軟件許可協議
- 服務器個性化配置
- ccnet.conf
- seafile.conf
- seahub_settings.py
- 發送郵件提醒
- 個性化郵件提醒
- 用戶管理
- 存儲容量與文件上傳/下載大小限制
- 自定義 Web
- 管理員手冊
- 賬戶管理
- 日志
- 備份與恢復
- Seafile FSCK
- Seafile GC
- WebDAV 和 FUSE 擴展
- WebDAV 擴展
- FUSE 擴展
- 安全選項
- 安全特性
- 日志和審計
- 開發文檔
- 編譯 Seafile
- Linux
- Windows
- Max OS X
- Server
- 開發環境
- 編程規范
- Web API
- Python API
- 數據模型
- 服務器組件
- 同步算法