మీ SSL ధృవపత్రాల సంతకం సాధారణంగా అంతర్గత సమాచార మార్పిడి లేదా గుప్తీకరణ అవసరమయ్యే వినియోగదారు-కాని-ఎదుర్కొంటున్న సైట్ల కోసం ధృవీకరణ అధికారులకు సాధారణ ప్రత్యామ్నాయంగా జరుగుతుంది. అపాచీతో ఒకదాన్ని ఎలా సెటప్ చేయాలో ఇక్కడ ఉంది.
SSL ప్రమాణపత్రాన్ని రూపొందించండి మరియు స్వీయ సంతకం చేయండి
మేము ఉపయోగిస్తాము openssl
సర్టిఫికేట్ మరియు సంబంధిత ప్రైవేట్ కీని రూపొందించడానికి యుటిలిటీ. ఇది అపాచీ డిపెండెన్సీ కాబట్టి మీరు దీన్ని ఇప్పటికే ఇన్స్టాల్ చేసి ఉండవచ్చు, కానీ అది తప్పిపోయినట్లయితే మీరు మీ డిస్ట్రో యొక్క ప్యాకేజీ మేనేజర్ నుండి ఇన్స్టాల్ చేయవచ్చు. ఉబుంటు వంటి డెబియన్ ఆధారిత వ్యవస్థల కోసం, ఇది ఇలా ఉంటుంది:
sudo apt-get install openssl
తరువాత openssl
వ్యవస్థాపించబడింది, మీరు ఈ క్రింది ఆదేశంతో ప్రమాణపత్రాన్ని రూపొందించవచ్చు:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache.key -out /etc/ssl/certs/apache.crt
openssl
మీ సంస్థ గురించి కొంత సమాచారం అడుగుతుంది. మీరు ఈ స్థలాన్ని చాలా ఖాళీగా ఉంచవచ్చు, కానీ మీరు పూరించాల్సిన ముఖ్యమైన విషయం “కామన్ నేమ్”, ఇది మీ సర్వర్ యొక్క IP చిరునామా లేదా డొమైన్ పేరుపై మీరు సెట్ చేయాలి.
Country Name (2 letter code) []: State or Province Name (full name) []: Locality Name (eg, city) []: Organization Name (eg, company) []: Organizational Unit Name (eg, section) []: Common Name (eg, fully qualified host name) []: your_ip_address Email Address []:
openssl
క్రొత్త ప్రైవేట్ RSA కీని అమలు చేయడానికి మరియు ఉత్పత్తి చేయడానికి ఇది సెకను పడుతుంది, ఇది సర్టిఫికెట్పై సంతకం చేయడానికి మరియు నిల్వ చేయడానికి ఉపయోగించబడుతుంది /etc/ssl/private/apache.key
. సర్టిఫికేట్ కూడా నిల్వ చేయబడుతుంది /etc/ssl/certs/apache.crt
మరియు ఒక సంవత్సరానికి చెల్లుతుంది.
మేము డిఫ్ఫీ-హెల్మాన్ సమూహాన్ని కూడా సృష్టించాలనుకుంటున్నాము. ఇది ఖచ్చితమైన ఫార్వర్డ్ రహస్యం కోసం ఉపయోగించబడుతుంది, ఇది సెషన్ కీ రాజీపడితే గత కమ్యూనికేషన్లను డీక్రిప్ట్ చేయలేదని నిర్ధారించడానికి అశాశ్వత సెషన్ కీలను ఉత్పత్తి చేస్తుంది. అంతర్గత సమాచార మార్పిడికి ఇది పూర్తిగా అవసరం లేదు, కానీ మీరు వీలైనంత సురక్షితంగా ఉండాలనుకుంటే మీరు ఈ దశను దాటవేయకూడదు. గమనిక, దీనికి మీకు అపాచీ వెర్షన్ 2.4.8 లేదా అంతకన్నా ఎక్కువ అవసరం, కాబట్టి మీరు తాజాగా ఉన్నారని నిర్ధారించుకోండి.
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
మీ సర్వర్ వేగాన్ని బట్టి దీనికి కొంత సమయం పడుతుంది. అపాచీని సెటప్ చేయడానికి కొంచెం భోజనం చేసి మీ టెర్మినల్కు తిరిగి వెళ్లండి.
మీ స్వీయ సంతకం చేసిన ప్రమాణపత్రాన్ని ఉపయోగించడానికి అపాచీని కాన్ఫిగర్ చేయండి
విషయాలను సరళీకృతం చేయడానికి, మేము మా కాన్ఫిగరేషన్ను స్నిప్పెట్ ఫైల్లో చేస్తాము. అపాచీలో క్రొత్తదాన్ని సృష్టించండి sites-available
డైరెక్టరీ:
sudo touch /etc/apache2/conf-available/ssl-params.conf
మీకు ఇష్టమైన టెక్స్ట్ ఎడిటర్లో తెరిచి కింది కాన్ఫిగరేషన్లో అతికించండి:
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLHonorCipherOrder On Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff SSLCompression off SSLUseStapling on SSLStaplingCache "shmcb:logs/stapling-cache(150000)" SSLSessionTickets Off SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
మొదటి బ్లాక్ కొన్ని డిఫాల్ట్ SSL పారామితులను సెట్ చేస్తుంది మరియు చివరి పంక్తి అపాచీని డిఫి-హెల్మాన్ సమూహాన్ని ఉపయోగించడానికి కాన్ఫిగర్ చేస్తుంది. మీరు ఆ దశను దాటవేస్తే మీరు ఈ పంక్తిని వదిలివేయవచ్చు.
అప్పుడు, డిఫాల్ట్ SSL వర్చువల్ హోస్ట్ ఫైల్ను తెరవండి, సాధారణంగా ఇది ఉంటుంది /etc/apache2/sites-available/default-ssl.conf
. మీ సర్టిఫికేట్ మరియు కీ ఫైల్కు సూచించడానికి క్రింది పంక్తులను సవరించండి:
SSLCertificateFile /etc/ssl/certs/apache.crt SSLCertificateKeyFile /etc/ssl/private/apache.key
SSL ఇప్పుడు పని చేయాలి, కానీ మీరు మీ ప్రస్తుత కాన్ఫిగరేషన్ ఫైల్ నుండి కొంత భాగాన్ని కాపీ చేయవలసి ఉంటుంది, ఎందుకంటే మీరు ఖాళీగా ఉన్నదాన్ని సవరించారు. మీరు దానిని నిర్ధారించుకోవాలి ServerName
, ServerAdmin
, ఉంది DocumentRoot
ఆదేశాలు సరైన స్థానాలను సూచిస్తాయి.
అదనంగా, HTTP ట్రాఫిక్ను గుప్తీకరించిన HTTPS కి ఫార్వార్డ్ చేయడానికి దారిమార్పును ఏర్పాటు చేయాలని మేము సిఫార్సు చేస్తున్నాము. డిఫాల్ట్ అపాచీ కాన్ఫిగరేషన్ను తెరవండి /etc/apache2/apache2.conf
మరియు HTTP ట్రాఫిక్ను తిరిగి వ్రాయడానికి క్రింది పంక్తులను జోడించండి:
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L]
ఫైర్వాల్ తెరిచి ఉందని మీరు నిర్ధారించుకోవాలని మేము సిఫార్సు చేస్తున్నాము. పోర్ట్ 80 కు బదులుగా HTTPS పోర్ట్ 443 ను ఉపయోగిస్తుంది, కాబట్టి మీరు సర్వర్కు కనెక్ట్ అవ్వడానికి దాన్ని తెరవాలి. మీరు iptables లేదా UFW ఉపయోగిస్తుంటే, మీరు కమాండ్ లైన్ నుండి పోర్టులను తెరవవచ్చు. మీరు AWS వంటి సేవలో మీ సర్వర్ను హోస్ట్ చేస్తుంటే, మీ ప్రొవైడర్ మీకు వెబ్ ఇంటర్ఫేస్ను అందించవచ్చు, దాని నుండి మీరు తలుపులు తెరవగలరు.
స్వీయ-సంతకం చేసిన ధృవపత్రాలు సాధారణంగా ప్రైవేట్ సర్వర్ల కోసం ఉపయోగించబడతాయి, కాబట్టి మీ ప్రైవేట్ LAN కి ప్రాప్యతను అధికారం చేయడం మరియు దానికి కనెక్ట్ చేయడానికి VPN సర్వర్ను ఉపయోగించడం చెడ్డ ఆలోచన కాదు.
తలుపులు తెరిచిన తర్వాత, బ్రౌజర్లోని సైట్ను యాక్సెస్ చేయడం ద్వారా SSL సెట్టింగులను తనిఖీ చేయడం సాధ్యపడుతుంది. ప్రతిదీ సరిగ్గా పనిచేస్తే, మీరు ఈ హెచ్చరికను చూడాలి:
ఇది సాధారణం, కాబట్టి చింతించకండి. మీరు ఈ ప్రమాణపత్రాన్ని విశ్వసిస్తున్నారని మీరు మానవీయంగా ఎన్నుకోవాలి, అందువల్ల మీరు పబ్లిక్ సైట్ల కోసం స్వీయ సంతకం చేసిన ప్రమాణపత్రాలను ఉపయోగించలేరు.
మీ సైట్ సురక్షితం కాదని హెచ్చరిక కాదు: SSL ఇప్పటికీ చురుకుగా ఉంది మరియు ట్రాఫిక్ను గుప్తీకరిస్తుంది. మీ ప్రైవేట్ కీ రాజీపడితే, కమ్యూనికేషన్ డీక్రిప్ట్ చేయబడవచ్చు, కానీ మీరు డిఫ్ఫీ-హెల్మాన్ ఫార్వర్డ్ సీక్రెట్ను సెట్ చేస్తే అది ఖచ్చితంగా సురక్షితం అవుతుంది, ఇది దాడి చేసే వెక్టర్ను రద్దు చేస్తుంది. ఇక్కడ సమస్య గుర్తింపుతో ఉంది. మీరు ఎవరో లేదా మీరు డొమైన్ స్వంతం అని క్రోమ్ ధృవీకరించలేదు, దీని కోసం మీకు “నిజమైన” CA అవసరం.