Thanks for the reply Amos. I could not start squid. From the messages file of Solaris, I saw the message: May 9 11:04:20 socksnj squid[6304]: [ID 567784 local4.alert] Exiting due to repeated, frequent failures May 9 11:15:48 socksnj squid[6346]: [ID 702911 user.alert] Failed to acquire SSL private key '/opt/squid-3.1.19/etc/webmail_test.key': error:0906406D:PEM routines:PEM_def_callback:problems getting password May 9 11:15:51 socksnj squid[6349]: [ID 702911 user.alert] Failed to acquire SSL private key '/opt/squid-3.1.19/etc/webmail_test.key': error:0906406D:PEM routines:PEM_def_callback:problems getting password May 9 11:15:54 socksnj squid[6353]: [ID 702911 user.alert] Failed to acquire SSL private key '/opt/squid-3.1.19/etc/webmail_test.key': error:0906406D:PEM routines:PEM_def_callback:problems getting password May 9 11:15:57 socksnj squid[6355]: [ID 702911 user.alert] Failed to acquire SSL private key '/opt/squid-3.1.19/etc/webmail_test.key': error:0906406D:PEM routines:PEM_def_callback:problems getting password May 9 11:16:00 socksnj squid[6357]: [ID 702911 user.alert] Failed to acquire SSL private key '/opt/squid-3.1.19/etc/webmail_test.key': error:0906406D:PEM routines:PEM_def_callback:problems getting password May 9 11:16:00 socksnj squid[6344]: [ID 567784 local4.alert] Exiting due to repeated, frequent failures I typed in the correct passphrase. The certificate was generated for Apache server with openssl. The self-signed cert was generated from openssl also. Here is revised squid.conf. Thanks. # # Recommended minimum configuration: # ##acl manager proto cache_object ##acl localhost src 127.0.0.1/32 ::1 ##acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 # Example rule allowing access from your local networks. # Adapt to list your (internal) IP networks from where browsing # should be allowed ##acl localnet src 10.0.0.0/8 # RFC1918 possible internal network ##acl localnet src 172.16.0.0/12 # RFC1918 possible internal network ##acl localnet src 192.168.0.0/16 # RFC1918 possible internal network ##acl localnet src fc00::/7 # RFC 4193 local private network range ##acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT # # Recommended minimum Access Permission configuration: # # Only allow cachemgr access from localhost ##http_access allow manager localhost ##http_access deny manager # Deny requests to certain unsafe ports ##http_access deny !Safe_ports # Deny CONNECT to other than secure SSL ports ##http_access deny CONNECT !SSL_ports # We strongly recommend the following be uncommented to protect innocent # web applications running on the proxy server who think the only # one who can access services on "localhost" is a local user #http_access deny to_localhost # # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS # # Example rule allowing access from your local networks. # Adapt localnet in the ACL section to list your (internal) IP networks # from where browsing should be allowed ##http_access allow localnet ##http_access allow localhost # And finally deny all other access to this proxy ##http_access allow all # Squid normally listens to port 3128 https_port 156.146.2.195:443 accel cert=/opt/apache2.2.21/conf/ssl.crt/webmail_fnpc_com.crt key=/opt/apache2.2.21/conf/ssl.crt/webmail_fnpc_com.key cafile=/opt/apache2.2.21/conf/ssl.crt/DigiCertCA.crt defaultsite=webmail.fnpc.com cache_peer 156.146.16.198 parent 443 0 no-query originserver login=PASS ssl sslcert=/opt/squid-3.1.19/etc/webmail_test.crt sslkey=/opt/squid-3.1.19/etc/webmail_test.key name=exchangeServer acl EXCH dstdomain .fnpc.com cache_peer_access exchangeServer allow EXCH cache_peer_access exchangeServer deny all never_direct all EXCH http_access allow EXCH http_access deny all miss_access allow EXCH miss_access deny all # Uncomment and adjust the following to add a disk cache directory. #cache_dir ufs /opt/squid-3.1.19/var/cache 100 16 256 # Leave coredumps in the first cache dir coredump_dir /opt/squid-3.1.19/var/cache # Add any of your own refresh_pattern entries above these. refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320 Ryan Jiang -----Original Message----- From: Amos Jeffries [mailto:squid3@xxxxxxxxxxxxx] Sent: Tuesday, May 08, 2012 9:05 PM To: squid-users@xxxxxxxxxxxxxxx Subject: Re: New to squid On 09.05.2012 10:42, Ruiyuan Jiang wrote: > Hi, all > > I am new to Squid. I am trying to setup squid as a reverse proxy to > for MS Exchange outlook client access. I compiled squid myself > (v3.1.19, Solaris 10, SPARC). I followed the configuration example on > the squid web page "ConfigExamples/Reverse/ExchangeRpc". > > # cat squid.conf <snip> > # Squid normally listens to port 3128 > > https_port 156.146.1.133:443 accel > cert=/opt/apache2.2.21/conf/ssl.crt/webmail_fnpc_com.crt > defaultsite=webmail.fnpc.com > cache_peer 10.105.10.20 parent 443 0 no-query originserver login=PASS > ssl sslcert=/opt/apache2.2.21/conf/ssl.crt/webmail_fnpc_com.crt > name=exchangeServer > > acl EXCH dstdomain .fnpc.com > > cache_peer_access exchangeServer allow EXCH > cache_peer_access exchangeServer deny all > never_direct all EXCH > > http_access allow EXCH > http_acces deny all ^^ typo "ss" > miss_access allow EXCH > miss_access deny all > <snip> > > The cerficate file webmail_fnpc_com.crt is a valid certificate that I > got from a CA. Do I need to install two certificates on the server, > one for client which I would guess the official certificate > (webmail_fnpc_com.crt)? Can I present the same certificate to the > internal exchange server? That is what I did to all my Apache reverse > proxy servers for Exchange server. The basics of it are that Squid is what interacts with the client. So the public cert needs to be presented there on https_port. What Exchange uses depends on what type of interactions happen there. It is probably safest to have self-signed certs with the self-signing CA trusted by Squid (on cache_peer) so it can verify Exchange, but this only works if the clients are not interacting directly to Exchange via other channels. NP: Squid requires PEM format certificate files. > When I ran 'squid -X', I got the > below message stating 1. unrecognized: 'https_port', 2. FATAL: > Bungled > squid.conf line 64: cache_peer 156.146.16.198 parent 443 0 no-query > originserver login=PASS ssl > sslcert=/opt/apache2.2.21/conf/ssl.crt/webmail_fnpc_com.crt > name=exchangeServer > When you built squid you omitted --enable-ssl. Ensure you have openssl development library to build against and rebuild your squid. It should accept the SSL related config after that. <snip> > 2012/05/08 17:22:11.373| parse_peer: token='ssl' ... > FATAL: Bungled squid.conf line 64: cache_peer 156.146.16.198 parent > 443 0 no-query originserver login=PASS ssl > sslcert=/opt/apache2.2.21/conf/ssl.crt/webmail_fnpc_com.crt > name=exchangeServer > Squid Cache (Version 3.1.19): Terminated abnormally. Amos This message (including any attachments) is intended solely for the specific individual(s) or entity(ies) named above, and may contain legally privileged and confidential information. If you are not the intended recipient, please notify the sender immediately by replying to this message and then delete it. Any disclosure, copying, or distribution of this message, or the taking of any action based on it, by other than the intended recipient, is strictly prohibited.