Ankündigung

Einklappen
Keine Ankündigung bisher.

SSl Zertifikat x509 über Website neu erstellen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SSl Zertifikat x509 über Website neu erstellen

    bräuchte nochmal eure Hilfe ich kann zwar ein Zertifikat erstellen aber ich bekomme es nicht in ein File gespeichert.
    PHP-Code:


    $file_key 
    ='/etc/apache2/ssl/apache1.key';
    $file_crt ='/etc/apache2/ssl/apache1.crt';
    //openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt  -subj "/C=DE/ST=Deutschland/L=Erkelenz/O=QKomm/OU=entwicklung/CN=auswerter.qkomm.local/emailAddress=dac424@freenet.de"

    $dn = array(
        
    "countryName" => "$countryName",
        
    "stateOrProvinceName" => "$stateOrProvinceName",
        
    "localityName" => "$localityName",
        
    "organizationName" => "$organizationName",
        
    "organizationalUnitName" => "$organizationalUnitName",
        
    "commonName" => "$commonName",
        
    "emailAddress" => "$emailAdress"
    );

    $privkey openssl_pkey_new();


    $csr openssl_csr_new($dn$privkey);
    $sscert openssl_csr_sign($csrnull$privkey365);
    openssl_csr_export($csr$csrout) ;
    openssl_x509_export($sscert$certout) ;
    openssl_pkey_export($privkey$pkeyout"mypassword");

    $subject = array(
        
    "commonName" => "$commonName",
    );
    $private_key openssl_pkey_new(array(
        
    "private_key_bits" => 2048,
        
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
    ));

    $csr openssl_csr_new($subject$private_key, array('digest_alg' => 'sha384') );
    openssl_pkey_export_to_file($private_key$file_key);
    chmod($file_key0777);

    openssl_csr_export_to_file($csr$file_crt);
    chmod($file_crt0777);

    while ((
    $e openssl_error_string()) !== false) {
        echo 
    $e "\n";

    wenn ich das File so erstelle dan funktioniert danach der Apache nicht mehr

    mache isch es So geht es

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt -subj "/C=DE/ST=Deutschland/L=egal/O=mittel/OU=entwicklung/CN=domain.test.local/emailAddress=info@macheich.local"




  • #2
    Eigeninitiative? Wie willst du etwas Programmieren was du nicht verstehst? Und blind Code aus dem Netz zusammen kopieren ist auch eine ganz bescheidene Arbeitsweise. Das sind zwei untereinander kopierte Scripte, die prinzipiell das gleiche machen.

    Schau dir das erste Script an, Zeile für Zeile. Was machen die Funktionen? Unklar was ein private key ist, unklar was ein csr ist, unklar was signing ist, unklar was ein Zetifikat ist, unklar was x509 ist, unklar was ein Passwort geschützter private key ist, unklar was der Unterscheid zwischen csr und crt ist? Schau bei Google, dass Netz ist voll mit Infos.
    Wenn du dir dann noch das zweite Script anschaust (insbesonderes das Namensschema der Funktionen), solltest du das zusammenbekommen.

    Kommentar


    • #3
      Hallo erc ich habs nun verstanden

      csr ist ein Anforderung auf Ausstellung eines Zertifikats sb beispiel Apple man schicht das CSR hoch und bekommt es Signiert zurück

      dan hat man die Pam das ist das eigentliche Zertifikat und den Key

      was mir bei meinem Zertifikat nun auffällt es wird erstellt es steht auch alles Drin das einzige was nicht Drin ist ist eine Serial

      mein apache startet aber sagt immer beim HTTPS aufruf das Zertifikat sei beschädigt

      PHP-Code:
      $file_key ='/etc/apache2/ssl/apache.key';
      $file_crt ='/etc/apache2/ssl/apache.crt';
      $dn = array(
          
      "countryName" => "$countryName",
          
      "stateOrProvinceName" => "$stateOrProvinceName",
          
      "localityName" => "$localityName",
          
      "organizationName" => "$organizationName",
          
      "organizationalUnitName" => "$organizationalUnitName",
          
      "commonName" => "$commonName",
          
      "emailAddress" => "$emailAdress"
      );
      // Erzeugen eines neuen privaten (und öffentlichen) Schlüsselpaars
      $privkey openssl_pkey_new();
      // Erzeugen einer Zertifikatssignierungsanfrage
      $csr openssl_csr_new($dn$privkey);

      $sscert openssl_csr_sign($csrnull$privkey365);

      openssl_csr_export($csr$csrout) ;
      //openssl_x509_export($sscert, $certout) and var_dump($certout)  ;

      openssl_x509_export_to_file($sscert$file_crt);
      chmod($file_crt0777);
      openssl_pkey_export_to_file($privkey$file_key);
      chmod($file_key0777);
      //openssl_pkey_export($privkey, $pkeyout, "mypassword");

      $data openssl_x509_parse(file_get_contents('/etc/apache2/ssl/apache.crt'));

      $validFrom date('Y-m-d H:i:s'$data['validFrom_time_t']);
      $validTo date('Y-m-d H:i:s'$data['validTo_time_t']);

      echo 
      $validFrom "\n";
      echo 
      $validTo "\n"
      ich habe mich genau nach Anweisung gehalten PHP selbstsigniertes Zertifikat.

      Kommentar


      • #4
        Das sieht jetzt auf jedenfall besser aus. Ich glaub nicht dass das Zertifikat defekt ist. Ansonsten würde openssl_x509_parse ein Fehler erzeugen.
        Was ein Problem sein könnte, ist, dass du den private key auf 777 setzt. Wenn ich mich nicht täusche, ist Apache da restriktiv. Das sollte dann aber im error log stehen. Pass die Berechtigung und den owner und schau was apssiert.

        Kommentar

        Lädt...
        X