জেনকিনস এবং সোনারের এসএসএল দ্বারা অ্যাপাচি বিপরীত প্রক্সি কনফিগারেশনটি সংশোধন করুন


11

আমি অ্যাপাচি সার্ভারের পিছনে দুটি পরিষেবা চালাচ্ছি: জেনকিনস (পোর্ট 8080) এবং সোনারকিউব (পোর্ট 9000)।

আমার অ্যাপাচি কনফিগারেশনটি দেখতে এমন দেখাচ্ছে:

<VirtualHost *:80>
  ServerName server
  Redirect permanent / https://server.domain.com/
</VirtualHost>

<VirtualHost *:80>
  ServerName server.domain.com
  Redirect permanent / https://server.domain.com/
</VirtualHost>

<VirtualHost *:443>
  ServerName server.domain.com

  SSLEngine on
  SSLCertificateFile /etc/ssl/certs/server.crt
  SSLCertificateKeyFile /etc/ssl/private/server.key

  ProxyPass        /jenkins http://localhost:8080/jenkins nocanon
  ProxyPassReverse /jenkins http://localhost:8080/jenkins
  ProxyPassReverse /jenkins http://server.domain.com/jenkins
  ProxyPassReverse /jenkins https://server.domain.com/jenkins

  ProxyPass        /sonar http://localhost:9000/sonar nocanon
  ProxyPassReverse /sonar http://localhost:9000/sonar

  AllowEncodedSlashes NoDecode
  ProxyRequests Off
  ProxyPreserveHost On
  <Proxy http://localhost:8080/*>
    Order deny,allow
    Allow from all
  </Proxy>
</VirtualHost>

জেনকিন্স এই বার্তাটির সাথে অভিযোগ করা ব্যতীত সবকিছুই ঠিকঠাকভাবে কাজ করছে বলে মনে হচ্ছে : মনে হচ্ছে আপনার বিপরীত প্রক্সি সেটআপটি ভেঙে গেছে।

আমি যখন জেনকিন্স দ্বারা সরবরাহিত রিভার্সপ্রক্সি সেটআপমনিটর পরীক্ষা চালাচ্ছি , ত্রুটি বার্তাটি ইঙ্গিত দেয় যে বিপরীত প্রক্সি সহ কিছু সঠিকভাবে সেট আপ করা হয়নি, যেমনটি এইচটিপিএসকে https এর সাথে প্রতিস্থাপন করে না:

$ curl -iLk -e https://server.domain.com/jenkins/manage https://server.domain.com/jenkins/administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/test
[...]
404 http://server.domain.com/jenkins/manage vs. https://server.domain.com/jenkins/manage
[...]

আমি কেবল সার্ভারে এসএসএল সক্ষম করার পরে এটি উপস্থিত হয়েছিল (যা এখন স্ব-স্বাক্ষরিত শংসাপত্র ব্যবহার করছে)।

প্রশ্ন: জেনকিনস খুশি যাতে আমি বিপরীত প্রক্সি সেটআপটি কীভাবে ঠিক করব? অ্যাপাচি কনফিগারেশন ফাইলটি কীভাবে উন্নত করা যায় তার টিপসের জন্য বোনাস পয়েন্ট।

আমি ইতিমধ্যে নিম্নলিখিত দুটি সম্পর্কিত প্রশ্ন পরীক্ষা করেছি:

উত্তর:


9

উইকি জেনকিনসের এই পৃষ্ঠাটিতে উল্লেখ করা হয়েছে যে জুলাই ২০১৪ অনুসারে জেনকিন্সের বিপরীত প্রক্সিটির প্রস্তাবিত কনফিগারেশন। অনুপস্থিত পরামিতিটি হ'ল RequestHeader set X-Forwarded-Proto "https"এবংRequestHeader set X-Forwarded-Port "443"

তাই কনফিগারেশন হয়ে গেল

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/cert.pem
    ServerAdmin  webmaster@localhost
    ProxyRequests     Off
    ProxyPreserveHost On
    AllowEncodedSlashes NoDecode
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass         /  http://localhost:8080/ nocanon
    ProxyPassReverse  /  http://localhost:8080/
    ProxyPassReverse  /  http://www.example.com/
    RequestHeader set X-Forwarded-Proto "https"
    RequestHeader set X-Forwarded-Port "443"
</VirtualHost>

2
দুর্দান্ত, এটি পুরোপুরি কাজ করেছে! আমারও করণীয় ছিল sudo a2enmod headers, অন্যথায় আমি পেতামInvalid command 'RequestHeader'
friederbluemle

আপনি কেন ProxyPassReverseএকই পথের জন্য দুটি নির্দেশনা ব্যবহার করছেন তা ব্যাখ্যা করতে পারেন ( /)?
অরটোমালা লোকনি

1

উইন্ডোজ অ্যাপাচি জেনকিনসের জন্য ফ্রন্ট-এন্ড সেটআপ

এখানে মূল পার্থক্যগুলি হ'ল:

  • অস্থায়ী শংসাপত্র কীভাবে সেট আপ করবেন
  • কোনও এসএসএল ক্যাশে না থাকার বিষয়ে অ্যাপাচি উইং বন্ধ করা

আমার সেটআপ:

  • ইনস্টলটি হ'ল ডি: \ (সি: not নয় - এটি আপনার প্রয়োজনের সাথে খাপ খাইয়ে নিতে হবে)

  • জেনকিনস 8080 বন্দরে রয়েছে

  • আনজিপ অ্যাপাচি httpd-2.4.18-win64-VC14.zip ( http://www.apachelounge.com/download/ থেকে ) থেকে ডি: \

  • ওপেনএসএসএল উইন 64 ওপেনএসএসএল_লাইট-1_0_2f.exe ( http://slproweb.com/products/Win32OpenSSL.html ) ডি তে ইনস্টল করুন : \ ওপেনএসএসএল- উইন 64

  • এসএসএল শংসাপত্র তৈরি করুন:

    • ওপেনএসএসএল বিন ডিরেক্টরিতে সিডি করুন এবং যাদুটি চালান:

       pushd d:\OpenSSL-Win64\bin
       set OPENSSL_CONF=openssl.cfg
       openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt
      
  • সার্ভারটি অনুলিপি করুন। * ফাইলগুলি ডি থেকে: \ ওপেনএসএসএল-উইন 64 D বিন থেকে ডি: \ অ্যাপাচি 24 \ কনফ

  • সম্পাদনা d: \ Apache24 \ conf \ httpd.conf:

    • "সি: /" অনুসন্ধান করুন এবং "d: /" এর সাথে প্রতিস্থাপন করুন

    • "শুনুন 80" রেখার পরে পরিবর্তন করুন, "শুনুন 443" যোগ করুন:

      Listen 80
      Listen 443
      
    • এই লাইনগুলি কমেন্ট করুন:

      LoadModule headers_module modules/mod_headers.so
      LoadModule proxy_module modules/mod_proxy.so
      LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
      LoadModule proxy_http_module modules/mod_proxy_http.so
      LoadModule rewrite_module modules/mod_rewrite.so
      LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
      LoadModule ssl_module modules/mod_ssl.so
      LoadModule vhost_alias_module modules/mod_vhost_alias.so
      
    • "# সার্ভারনাম www.example.com:80" এতে আপডেট করুন:

      ServerName myserver.mydomain:80
      
    • এটি শেষে যুক্ত করুন:

      <IfModule socache_shmcb_module>
      SSLSessionCache "shmcb:logs/ssl_scache(512000)"
      </IfModule>
      
      <VirtualHost *:80>
        ServerName myserver
        Redirect permanent / https://myserver.mydomain/
      </VirtualHost>
      
      <VirtualHost *:80>
        ServerName myserver.mydomain
        Redirect permanent / https://myserver.mydomain/
      </VirtualHost>
      
      <VirtualHost *:443>
                  SSLEngine on
                  SSLCertificateFile conf/server.crt
                  SSLCertificateKeyFile conf/server.key
                  ServerAdmin  me@mydomain
                  ProxyRequests             Off
                  ProxyPreserveHost On
                  AllowEncodedSlashes NoDecode
                  <Proxy *>
                              Order deny,allow
                              Allow from all
                  </Proxy>
                  ProxyPass         /  http://localhost:8080/ nocanon
                  ProxyPassReverse  /  http://localhost:8080/
                  ProxyPassReverse  /  http://myserver.mydomain/
                  RequestHeader set X-Forwarded-Proto "https"
                  RequestHeader set X-Forwarded-Port "443"
      </VirtualHost>
      

আমি 8080 পোর্টে জেনকিন্সকে থামাতে থামিনি, তাই অ্যাপাচি ব্যর্থ হলে আমি এখনও সংযোগ করতে পারি। Https ব্যবহারে আমার উদ্দেশ্য হ'ল পরামিতিগুলি লুকানো।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.