2013年12月30日 星期一
IIS 7.5 Web Farm With Loading Balance (Session Problem)
http://serverfault.com/questions/288981/load-balanced-iis-7-5-web-server-asp-net-session-state-problem
A: open state server to store session (make sure all the farms can access state server via network connection)
B: synchronize the machine key
http://technet.microsoft.com/en-us/library/cc755177%28WS.10%29.aspx
C: share IIS configuration ( the Site ID must be equal )
http://www.iis.net/learn/manage/managing-your-configuration-settings/shared-configuration_264
http://www.iis.net/learn/manage/managing-your-configuration-settings/configuring-a-web-farm-using-iis-shared-configuration
2013年12月27日 星期五
MySQL Connection Tuning (Too Many Connections)
1. Default :
mysql> show global variables like '%timeout%';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 28800 |
+----------------------------+-------+
mysql> show variables like '%timeout%';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 28800 |
+----------------------------+-------+
mysql> show variables like '%max_connection%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 150 |
+-----------------+-------+
2. online setting
set global wait_timeout = 60;
set global interactive_timeout = 1200;
set max_connections = 500;
mysql> show variables like '%timeout%';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 1200 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 1200 |
+----------------------------+-------+
mysql> show global variables like '%timeout%';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 1200 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 60 |
+----------------------------+-------+
mysql> show variables like '%max_connection%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 500 |
+-----------------+-------+
3. config setting
[mysqld]
wait_timeout = 60
interactive_timeout = 1200
max_connections = 500
mysql> show global variables like '%timeout%';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 28800 |
+----------------------------+-------+
mysql> show variables like '%timeout%';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 28800 |
+----------------------------+-------+
mysql> show variables like '%max_connection%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 150 |
+-----------------+-------+
2. online setting
set global wait_timeout = 60;
set global interactive_timeout = 1200;
set max_connections = 500;
mysql> show variables like '%timeout%';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 1200 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 1200 |
+----------------------------+-------+
mysql> show global variables like '%timeout%';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 1200 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 60 |
+----------------------------+-------+
mysql> show variables like '%max_connection%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 500 |
+-----------------+-------+
3. config setting
[mysqld]
wait_timeout = 60
interactive_timeout = 1200
max_connections = 500
2013年12月19日 星期四
2013年12月16日 星期一
StartSSL 免費憑證
摘自 http://blog.mowd.tw/index.php?pl=950
前一陣子朋友介紹了 StartSSL 這個可以全球唯一可以申請免費 SSL 證書的網站
申請後的 SSL 證書有效期限為一年
經過一番測試之後,Mowd 終於申請成功並且安裝到 Apache
現在就可以透過 https://ssl.mowd.tw 來瀏覽經過 https 加密的網誌囉
StartSSL 註冊過程如下:
1. 使用 IE 連到 http://www.startssl.com,點選右上角鑰匙圖案進入註冊頁
Mowd 之前要用 Chrome 註冊時,StartSSL 提示因為憑證匯入問題,不建議使用 Chrome ,於是 Mowd 是用 IE 註冊的
2. 點選 Sign-up 按鈕進行註冊
3. 接下來會看到一份註冊表格,填寫的資料必須正確
因為申請後 StartSSL 會進行審核,如果隨便寫寫就不會過了
送出表單後要等一下才會收到確認信,Mowd 大概十分鐘內就收到了
確認信中包含一串驗證碼,將驗證碼貼入表格終究可以完成驗證
4. 完成驗證後會要求你輸入登入 StartSSL 的憑證密碼,並且自動將登入憑證安裝到 IE 瀏覽器
日後如果要匯出登入憑證到其他電腦的話
可以到 IE 的「網際網路選項 --> 內容 --> 憑證」的個人分頁匯出
Mowd 之前要用 Chrome 註冊時,StartSSL 提示因為憑證匯入問題,不建議使用 Chrome ,於是 Mowd 是用 IE 註冊的
2. 點選 Sign-up 按鈕進行註冊
3. 接下來會看到一份註冊表格,填寫的資料必須正確
因為申請後 StartSSL 會進行審核,如果隨便寫寫就不會過了
送出表單後要等一下才會收到確認信,Mowd 大概十分鐘內就收到了
確認信中包含一串驗證碼,將驗證碼貼入表格終究可以完成驗證
4. 完成驗證後會要求你輸入登入 StartSSL 的憑證密碼,並且自動將登入憑證安裝到 IE 瀏覽器
日後如果要匯出登入憑證到其他電腦的話
可以到 IE 的「網際網路選項 --> 內容 --> 憑證」的個人分頁匯出
註冊完成之後,再來是申請 SSL 憑證
StartSSL 的免費帳戶可以申請 Class1 憑證
每一個憑證可以擁有一個主網域跟一個子網域
如果需要多個子網域的話,憑證可以分開申請,憑證數量一樣沒有限制
申請步驟如下:
1. 登入 StartSSL 後會進入 Control Panel 介面
首先必須要驗證你是網域的管理者
所以先點選 Validations Wizard
驗證方式選擇 Domain Name Validation
2. 接下來輸入主網域名稱,不要包含子網域
3. StartSSL 會根據網域註冊資料,發送驗證碼到你註冊網域的 E-mail
把驗證碼輸入表單送出後就完成網域驗證了
首先必須要驗證你是網域的管理者
所以先點選 Validations Wizard
驗證方式選擇 Domain Name Validation
2. 接下來輸入主網域名稱,不要包含子網域
3. StartSSL 會根據網域註冊資料,發送驗證碼到你註冊網域的 E-mail
把驗證碼輸入表單送出後就完成網域驗證了
完成網域驗證後,接下來就是申請 SSL 證書了
1. 首先點選 Certificates Wizard 進行申請流程
選擇 Web Server SSL/TLS Certificate
2. 接下來要產生私鑰,先輸入一個大於 10 位數的密碼
密碼只能包含英文和數字
至於 Keysize,Mowd 是選 4096 位元
3. 下一個頁面就是剛剛我們產生的私鑰內容
這個私鑰文件是經過加密的,稍後我們要將他解密
把文字方塊內容儲存下來,並命名為 ssl.key
4. 接下來選擇我們要產生 SSL 證書的主網域以及子網域
5. 最後文字方塊裡面的就是 SSL 證書
將文字方塊裡面的文字儲存起來,檔名為 ssl.crt
另外記得要下載 intermediate 和 root CA 證書
如果缺少這兩個,Firefox 會出現「sec_error_unknown_issuer」
並且出現警告頁面告訴你不要信任 StartSSL 的 SSL 證書
http://www.startssl.com/certs/sub.class1.server.ca.pem
http://www.startssl.com/certs/ca.pem
選擇 Web Server SSL/TLS Certificate
2. 接下來要產生私鑰,先輸入一個大於 10 位數的密碼
密碼只能包含英文和數字
至於 Keysize,Mowd 是選 4096 位元
3. 下一個頁面就是剛剛我們產生的私鑰內容
這個私鑰文件是經過加密的,稍後我們要將他解密
把文字方塊內容儲存下來,並命名為 ssl.key
4. 接下來選擇我們要產生 SSL 證書的主網域以及子網域
5. 最後文字方塊裡面的就是 SSL 證書
將文字方塊裡面的文字儲存起來,檔名為 ssl.crt
另外記得要下載 intermediate 和 root CA 證書
如果缺少這兩個,Firefox 會出現「sec_error_unknown_issuer」
並且出現警告頁面告訴你不要信任 StartSSL 的 SSL 證書
http://www.startssl.com/certs/sub.class1.server.ca.pem
http://www.startssl.com/certs/ca.pem
以上步驟我們可以得到私鑰 ssl.key 以及 SSL 證書 ssl.crt
接下來我們要在 Apache 啟用 SSL
Mowd 是使用 CentOS 5.5
所以接下來 Mowd 都以 CentOS 5.5 的環境來介紹
1. 首先檢查 Apache 有沒有安裝 mod_ssl
可以透過 yum install mod_ssl 來安裝
2. 接下來將 ssl.key 上傳到 /etc/pki/tls/private/
將 ssl.crt 上傳到 /etc/pki/tls/certs/
將 sub.class1.server.ca.pem 以及 ca.pem 上傳到 /etc/pki/tls/
3. 前面提到我們取得的私鑰 ssl.key 是加密過後的
如果沒有解密的話,每次 Apache 啟動後都要輸入密碼
解密步驟如下:
4. 再來打開 /etc/httpd/conf.d/ssl.conf
將 ssl.conf 內各項憑證的路徑及檔案修改如下
5. 儲存後重新載入 Apache,SSL 就生效囉
SSL 測試網頁:https://ssl.mowd.tw
可以透過 yum install mod_ssl 來安裝
2. 接下來將 ssl.key 上傳到 /etc/pki/tls/private/
將 ssl.crt 上傳到 /etc/pki/tls/certs/
將 sub.class1.server.ca.pem 以及 ca.pem 上傳到 /etc/pki/tls/
3. 前面提到我們取得的私鑰 ssl.key 是加密過後的
如果沒有解密的話,每次 Apache 啟動後都要輸入密碼
解密步驟如下:
#cd /etc/pki/tls/private/
#openssl rsa -in ssl.key -out ssl.key
接下來會提示你輸入私鑰密碼,輸入完就解密囉#openssl rsa -in ssl.key -out ssl.key
4. 再來打開 /etc/httpd/conf.d/ssl.conf
將 ssl.conf 內各項憑證的路徑及檔案修改如下
SSLCertificateFile /etc/pki/tls/certs/ssl.crt
SSLCertificateKeyFile /etc/pki/tls/private/ssl.key
SSLCertificateChainFile /etc/pki/tls/sub.class1.server.ca.pem
SSLCACertificateFile /etc/pki/tls/ca.pem
SSLCertificateKeyFile /etc/pki/tls/private/ssl.key
SSLCertificateChainFile /etc/pki/tls/sub.class1.server.ca.pem
SSLCACertificateFile /etc/pki/tls/ca.pem
5. 儲存後重新載入 Apache,SSL 就生效囉
SSL 測試網頁:https://ssl.mowd.tw
Firefox不信任StartSSL证书问题解决
8/22/2012
StartSSL证书的支持率一直是一个很大的问题,今天在Apache中安装完StartSSL证书之后遇到了以下情况:
- Firefox提示“此连接是不受信任的”,同时Opera则在地址栏左侧状态中提示“服务器试图应用安全措施,但没有成功”;
- 桌面版本Chrome显示已经加密,但iOS版Chrome则提示“此网站尚未经过身份验证。”;
- Win7下IE9和iOS版本Safari都显示已经加密。
理论上讲,StartSSL支持除了Opera外所有的主流浏览器,因此Firefox遇到的不受信任的连接是不正常情况。
经过查看官网文档和Google后找到了问题的原因:Firefox仅包含了StartCom的根证书,而中间证书需要服务器提供,一般网上的Howto都不会提及这一点,所以会出现类似问题。
以下解决方法基于Jason Weathered的文章《A free SSL certificate for your web server》改进(之前Kaijia是根据《Setting up SSL: Ubuntu and Apache 2》架设的SSL,其中证书和Key文件都放在/etc/apache2/ssl/文件夹中,此例中假定你将域名的.crt和.key文件也放在/etc/apache2/ssl/中):
首先你需要在StartSSL的控制板的Tool Box->StartCom CA Certificates中下载StartCom CA证书,需要下载StartCom Root CA (PEM encoded)、你的证书等级对应的CA证书(免费的Class 1证书下载Class 1 Intermediate Server CA)。下载完成后将这两个pem文件复制到服务器的/etc/apache2/ssl/文件夹中。
在命令行下运行以下命令:
1
2
3
4
| cd /etc/apache2/ssl mv ca.pem startssl.ca.crt mv sub.class1.server.ca.pem startssl.sub.class1.server.ca.crt cat startssl.sub.class1.server.ca.crt startssl.ca.crt > startssl.chain.class1.server.crt |
然后修改原来SSL部分的Apache设置,Kaijia虚拟域名的原有设置为:
1
2
3
4
5
6
7
| < VirtualHost *:443> DocumentRoot /var/www/yourdomain.com ServerName yourdomain.com SSLEngine On SSLCertificateFile /etc/apache2/ssl/yourdomain.crt SSLCertificateKeyFile /etc/apache2/ssl/yourdomain.key </ VirtualHost > |
在原有设置中增加一条:SSLCertificateChainFile /etc/apache2/ssl/startssl.chain.class1.server.crt,更改为如下:
1
2
3
4
5
6
7
8
| < VirtualHost *:443> DocumentRoot /var/www/yourdomain.com ServerName yourdomain.com SSLEngine On SSLCertificateFile /etc/apache2/ssl/yourdomain.crt SSLCertificateKeyFile /etc/apache2/ssl/yourdomain.key SSLCertificateChainFile /etc/apache2/ssl/startssl.chain.class1.server.crt </ VirtualHost > |
之后重启Apache:
1
| service apache2 restart |
刷新浏览器后Firefox显示连接安全,而Opera在Linux下显示安全,Windows下仍然提示“服务器试图应用安全措施,但没有成功”,可能与系统根证书目录,但毕竟StartCom自己都没说过支持Opera,这样说来问题也是解决了。
关联文章
- Linux下Apache使用符号链接及权限问题解决
IIS 部份參考 StarSSL說明
33.) I created a private key instead of submitting my certificate request (CSR) for IIS server. How can I use my certificate?
Login to the StartSSL™ Control Panel and click on the "Tool Box" tab. Select "Create PFX File" and submit the encrypted private key, certificate and your password for the key. Disable any download blocker before continuing. Save the PFX file at a convenient location on your computer. Use the MMC utility to install the certificate at your IIS server. Afterward simply replace the current certificate at the IIS wizard and you are done.
訂閱:
文章 (Atom)