4 Eylül 2013 Çarşamba

ODI iInterface Mapping Query (Work Repository)

SELECT DISTINCT
       SNP_PROJECT.PROJECT_NAME AS PROJECT_NAME,
       SNP_FOLDER.FOLDER_NAME AS FOLDER_NAME,
       SNP_POP.POP_NAME AS INTERFACE_NAME,
       CASE
          WHEN SNP_POP.WSTAGE = 'E' THEN 'TABLE_TO_TABLE_INF'
          ELSE 'TEMP_INTERFACE'
       END
          AS INTERFACE_TYPE,
       SNP_POP.LSCHEMA_NAME AS TARGET_SCHEMA,
       SNP_POP.TABLE_NAME AS TARGET_TABLE,
       SNP_POP.MOD_CODE AS TARGET_MODEL,
       TARGET_MODEL.LSCHEMA_NAME AS TARGET_LSCHEMA_NAME,
       /*SNP_POP_COL.COL_NAME AS TARGET_COLUMN,
       CASE WHEN SNP_POP.WSTAGE='E'
            THEN T_COL.SOURCE_DT||' ('||T_COL.LONGC||')'
            ELSE SNP_POP_COL.SOURCE_DT||' ('||SNP_POP_COL.LONGC||')'
       END AS TRG_DATATYPE,*/
       SNP_SOURCE_TAB.LSCHEMA_NAME AS SOURCE_SCHEMA,
       SNP_TABLE.TABLE_NAME AS SOURCE_TABLE,
       SNP_SOURCE_TAB.MOD_CODE AS SOURCE_MODEL,
       SOURCE_MODEL.LSCHEMA_NAME  AS SOURCE_LSCHEMA_NAME
       /*, SNP_COL.COL_NAME AS SOURCE_COLUMN ,
       SNP_COL.SOURCE_DT||' ('||SNP_COL.LONGC||')' AS SRC_DATATYPE,
       --rowtocol('SELECT DISTINCT TXT FROM SNP_TXT WHERE I_TXT='||i_txt ) AS COLUMN_MAPPING
       SNP_TXT.TXT AS COLUMN_MAPPING*/
       -- to use without rowtocol use SNP_TXT.TXT AS COLUMN_MAPPING
       FROM SNP_PROJECT
       LEFT OUTER JOIN SNP_FOLDER ON SNP_FOLDER.I_PROJECT=SNP_PROJECT.I_PROJECT
       LEFT OUTER JOIN SNP_POP ON SNP_POP.I_FOLDER=SNP_FOLDER.I_FOLDER
       LEFT OUTER JOIN SNP_POP_COL ON SNP_POP_COL.I_POP=SNP_POP.I_POP
       LEFT OUTER JOIN SNP_POP_CLAUSE ON SNP_POP_CLAUSE.I_POP=SNP_POP.I_POP
       LEFT OUTER JOIN SNP_TXT S_TXT ON S_TXT.I_TXT=SNP_POP_CLAUSE.I_TXT_SQL
       LEFT OUTER JOIN SNP_TXT ON SNP_TXT.I_TXT= SNP_POP_COL.I_TXT_MAP
       LEFT OUTER JOIN SNP_SOURCE_TAB ON SNP_SOURCE_TAB.I_POP=SNP_POP.I_POP
       LEFT OUTER JOIN SNP_TXT_CROSSR ON SNP_TXT_CROSSR.I_TXT=SNP_TXT.I_TXT
       LEFT OUTER JOIN SNP_COL ON SNP_COL.I_COL=SNP_TXT_CROSSR.I_COL
       LEFT OUTER JOIN SNP_TABLE ON SNP_TABLE.I_TABLE= SNP_COL.I_TABLE
       LEFT OUTER JOIN SNP_MODEL TARGET_MODEL ON SNP_POP.I_MOD= TARGET_MODEL.I_MOD
       LEFT OUTER JOIN SNP_MODEL SOURCE_MODEL ON SNP_SOURCE_TAB.I_MOD= SOURCE_MODEL.I_MOD
       --LEFT OUTER JOIN SNP_COL T_COL ON T_COL.I_COL=SNP_POP_COL.I_COL
       --WHERE UPPER(SNP_TABLE.TABLE_NAME) LIKE '%TBLSERVICES%'
ORDER BY SNP_POP.POP_NAME

ODI Topology Connection Detail (Master Repository)

/* 10g MASTER REPOSITIRY TOPOLOGY MAPPING */
SELECT DISTINCT ODIM.SNP_TECHNO.TECHNO_NAME AS TECHNOLOGY,
                  ODIM.SNP_CONNECT.CON_NAME AS DATA_SERVER,
                  ODIM.SNP_CONNECT.USER_NAME AS USERNAME,
                  ODIM.SNP_CONNECT.PASS AS PASSWD,
                  ODIM.SNP_PSCHEMA.EXT_NAME AS PHYSICAL_SCHEMA,
                  ODIM.SNP_PSCHEMA.SCHEMA_NAME AS SCHEMA_NAME,
                  ODIM.SNP_PSCHEMA.WSCHEMA_NAME AS WORK_SCHEMA,
                  ODIM.SNP_CONTEXT.CONTEXT_NAME AS CONTEXT_NAME,
                  ODIM.SNP_LSCHEMA.LSCHEMA_NAME AS LOGICAL_SCHEMA,
                  ODIM.SNP_CONNECT.JAVA_DRIVER AS DRIVER_INFO,
                  ODIM.SNP_MTXT_PART.TXT AS URL
    FROM ODIM.SNP_TECHNO
         LEFT OUTER JOIN ODIM.SNP_CONNECT ON ODIM.SNP_CONNECT.I_TECHNO = ODIM.SNP_TECHNO.I_TECHNO
         LEFT OUTER JOIN ODIM.SNP_PSCHEMA ON ODIM.SNP_PSCHEMA.I_CONNECT = ODIM.SNP_CONNECT.I_CONNECT
         LEFT OUTER JOIN ODIM.SNP_PSCHEMA_CONT ON ODIM.SNP_PSCHEMA_CONT.I_PSCHEMA = ODIM.SNP_PSCHEMA.I_PSCHEMA
         LEFT OUTER JOIN ODIM.SNP_LSCHEMA ON ODIM.SNP_LSCHEMA.I_LSCHEMA = ODIM.SNP_PSCHEMA_CONT.I_LSCHEMA
         LEFT OUTER JOIN ODIM.SNP_CONTEXT ON ODIM.SNP_CONTEXT.I_CONTEXT = ODIM.SNP_PSCHEMA_CONT.I_CONTEXT
         LEFT OUTER JOIN ODIM.SNP_MTXT_PART ON ODIM.SNP_MTXT_PART.I_TXT = ODIM.SNP_CONNECT.I_TXT_JAVA_URL
   WHERE ODIM.SNP_CONNECT.CON_NAME IS NOT NULL
ORDER BY ODIM.SNP_TECHNO.TECHNO_NAME;

11g
  SELECT DISTINCT
         SNP_TECHNO.TECHNO_NAME AS TECHNOLOGY,
         SNP_CONNECT.CON_NAME AS DATA_SERVER,
         SNP_CONNECT.USER_NAME AS USERNAME,
         SNP_CONNECT.PASS AS PASSWD,
         SNP_PSCHEMA.EXT_NAME AS PHYSICAL_SCHEMA,
         SNP_PSCHEMA.SCHEMA_NAME AS SCHEMA_NAME,
         SNP_PSCHEMA.WSCHEMA_NAME AS WORK_SCHEMA,
         SNP_CONTEXT.CONTEXT_NAME AS CONTEXT_NAME,
         SNP_LSCHEMA.LSCHEMA_NAME AS LOGICAL_SCHEMA,
         SNP_CONNECT.JAVA_DRIVER AS DRIVER_INFO,
         COALESCE (SNP_MTXT_PART.TXT, DBMS_LOB.SUBSTR (SNP_MTXT.FULL_TXT, 1000, 1)) AS URL,
         SNP_CONNECT.USER_NAME,
         SNP_CONNECT.PASS
    FROM SNP_TECHNO
         LEFT OUTER JOIN SNP_CONNECT
            ON SNP_CONNECT.I_TECHNO = SNP_TECHNO.I_TECHNO
         LEFT OUTER JOIN SNP_PSCHEMA
            ON SNP_PSCHEMA.I_CONNECT = SNP_CONNECT.I_CONNECT
         LEFT OUTER JOIN SNP_PSCHEMA_CONT
            ON SNP_PSCHEMA_CONT.I_PSCHEMA = SNP_PSCHEMA.I_PSCHEMA
         LEFT OUTER JOIN SNP_LSCHEMA
            ON SNP_LSCHEMA.I_LSCHEMA = SNP_PSCHEMA_CONT.I_LSCHEMA
         LEFT OUTER JOIN SNP_CONTEXT
            ON SNP_CONTEXT.I_CONTEXT = SNP_PSCHEMA_CONT.I_CONTEXT
         LEFT OUTER JOIN SNP_MTXT_PART
            ON SNP_MTXT_PART.I_TXT = SNP_CONNECT.I_TXT_JAVA_URL
         LEFT OUTER JOIN SNP_MTXT
            ON SNP_MTXT.I_TXT = SNP_CONNECT.I_TXT_JAVA_URL
   WHERE SNP_CONNECT.CON_NAME IS NOT NULL
ORDER BY SNP_TECHNO.TECHNO_NAME;

Reference : http://odiexperts.com/odi-topology-connection-detail/



1 Mart 2010 Pazartesi

seam_gen için ufak bir bug-fix

seam_gen ile otomatik entity oluşturduktan sonra, liste görünümünden "edit" ile kayıt detayına geçildiğinde,
ilişkili entity/entityler varsa ilgili fieldları rich:tabPanel komponentinde birer tab olarak ekliyor.
birden fazla ilişkili entity olduğunda bunların her biri için oluşturduğu "change" (null ise select) butonlarının id değerlerine aşağıdak görebileceğiniz şekilde tek bir atama yapıyor, ki bu da sorun oluşturuyor.
hata kodu şu şekilde :

"java.lang.IllegalStateException: duplicate Id for a component selectParent"


çözümü aşağıdaki gibi imiş :

/(seam_klasoru)/seam-gen/view/
altındaki "edit.xhtml.ftl" dosyasında

‹s:button id="${'#'}{${homeName}.instance.${property.name} != null ? 'changeParent' : 'selectParent'}" value="${'#'}{${homeName}.instance.${property.name} != null ? 'Change' : 'Select'} ${property.name}"
view="/${parentPageName}List.xhtml"›

satırını

‹s:button id="${'#'}{${homeName}.instance.${property.name} != null ? 'changeParent_${property.name}' : 'selectParent_${property.name}'}" value="${'#'}{${homeName}.instance.${property.name} != null ? 'Change' : 'Select'} ${property.name}"
view="/${parentPageName}List.xhtml"›

şeklinde değiştirin.

9 Kasım 2009 Pazartesi

Eclipse üzerinde yeni bir Seam Web Project oluşturduktan sonra html dosyalarını "Jboss Tools HTML Editor" ile açamıyordum. Projenin bulunduğu workspace'de (/path_to/workspace/.metadata/.log) bulunan log dosyasına baktığımda hata kodu aşağıdaki gibiydi:
!ENTRY org.eclipse.ui 4 0 2009-11-09 16:02:32.436
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.UnsatisfiedLinkError: /home/ccanaslan/EclipseInstallations/eclipse_for_seam/plugins/org.mozilla.xulrunner.gtk.linux.x86_1.8.1.3-20070904/xulrunner/libjavaxpcomglue.so: libstdc++.so.5: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1647)
at java.lang.Runtime.load0(Runtime.java:769)
at java.lang.System.load(System.java:968)
at org.mozilla.xpcom.internal.JavaXPCOMMethods.registerJavaXPCOMMethods(JavaXPCOMMethods.java:57)
at org.mozilla.xpcom.internal.MozillaImpl.initialize(MozillaImpl.java:48)
at org.mozilla.xpcom.Mozilla.initialize(Mozilla.java:668)
at org.jboss.tools.vpe.xulrunner.browser.XulRunnerBrowser.initXulRunner(XulRunnerBrowser.java:120)
at org.jboss.tools.vpe.xulrunner.browser.XulRunnerBrowser.(XulRunnerBrowser.java:87)
at org.jboss.tools.vpe.xulrunner.editor.XulRunnerEditor.(XulRunnerEditor.java:126)
at org.jboss.tools.vpe.editor.mozilla.MozillaEditor$5.(MozillaEditor.java:282)
at org.jboss.tools.vpe.editor.mozilla.MozillaEditor.createPartControl(MozillaEditor.java:282)
at org.jboss.tools.vpe.editor.VpeEditorPart.createVisualEditor(VpeEditorPart.java:769)
at org.jboss.tools.jst.jsp.jspeditor.JSPMultiPageEditor.pageChange(JSPMultiPageEditor.java:247)
at org.jboss.tools.jst.jsp.jspeditor.JSPMultiPageEditor.createPages(JSPMultiPageEditor.java:438)
at org.jboss.tools.jst.jsp.jspeditor.JSPMultiPageEditorPart.createPartControl(JSPMultiPageEditorPart.java:125)
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:661)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:428)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:594)
at org.eclipse.ui.internal.PartPane.requestActivation(PartPane.java:262)
at org.eclipse.ui.internal.EditorPane.requestActivation(EditorPane.java:98)
at org.eclipse.ui.internal.presentations.PresentablePart.setFocus(PresentablePart.java:192)
at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation$1.handleEvent(TabbedStackPresentation.java:94)
at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:267)
at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:272)
at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.handleMouseDown(AbstractTabFolder.java:342)
at org.eclipse.ui.internal.presentations.util.AbstractTabFolder$3.mouseDown(AbstractTabFolder.java:79)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:179)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3401)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3033)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2384)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)


/usr/lib/ dizini altında libstdc++.so.6.0.10 vardı,
sorun "yum install libstdc++.so.5" komutu ile çözüldü.

23 Mart 2009 Pazartesi

fc10 JAVA Kurulumları ve Alternatives Ayarları

1) İndirdiğimiz jdk-1_5_0_17-linux-i586.bin ve jdk-6u12-linux-i586.bin dosyalarını /usr/lib/jvm/ altına kopyalayalım.

2) Sırasıyla aşağıdakileri yapalım :
# ./jdk-1_5_0_17-linux-i586.bin (kurulum esnasında lisans sözleşmesini "yes" yazarak onaylayalım)
# rm -f jdk-1_5_0_17-linux-i586.bin
# ./jdk-6u12-linux-i586.bin (kurulum esnasında lisans sözleşmesini "yes" yazarak onaylayalım)
# rm -f jdk-6u12-linux-i586.bin


3) java için
# alternatives --config java
There are 2 programs which provide 'java'.

Selection Command
-----------------------------------------------
*+ 1 /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
2 /usr/lib/jvm/jre-1.5.0-gcj/bin/java


sırasıyla
# alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_12/jre/bin/java 16012
# alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.5.0_17/jre/bin/java 15017

NOT =
usage: alternatives --install link name path priority
jdk1.6.0_12 için :
link : /usr/bin/java
name : java
path : /usr/lib/jvm/jdk1.6.0_12/jre/bin/java
priority : 16012 (jdk1.6.0_12)

jdk1.5.0_17 için :
link : /usr/bin/java
name : java
path : /usr/lib/jvm/jdk1.5.0_17/jre/bin/java
priority : 15017 (jdk1.5.0_17)


bittikten sonra :

# alternatives --config java
There are 4 programs which provide 'java'.

Selection Command
-----------------------------------------------
+ 1 /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
2 /usr/lib/jvm/jre-1.5.0-gcj/bin/java
* 3 /usr/lib/jvm/jdk1.6.0_12/jre/bin/java
4 /usr/lib/jvm/jdk1.5.0_17/jre/bin/java

NOT = "+" işareti seçili olan kurulumu, "*" işareti ise priority olarak en yüksek versiyonu gösteriyor (jdk1.6.0_12 için 16012 vermiştik)




4) libjavaplugin.so için :
# alternatives --config libjavaplugin.so
There is 1 program that provides 'libjavaplugin.so'.

Selection Command
-----------------------------------------------
*+ 1 /usr/lib/jvm/jre-1.6.0-openjdk/lib/i386/IcedTeaPlugin.so


sırasıyla
alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so libjavaplugin.so /usr/lib/jvm/jdk1.5.0_17/jre/plugin/i386/ns7/libjavaplugin_oji.so 15017
ve
alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so libjavaplugin.so /usr/lib/jvm/jdk1.6.0_12/jre/plugin/i386/ns7/libjavaplugin_oji.so 16012

bittikten sonra :

# alternatives --config libjavaplugin.so

There are 3 programs which provide 'libjavaplugin.so'.

Selection Command
-----------------------------------------------
1 /usr/lib/jvm/jre-1.6.0-openjdk/lib/i386/IcedTeaPlugin.so
2 /usr/lib/jvm/jdk1.5.0_17/jre/plugin/i386/ns7/libjavaplugin_oji.so
*+ 3 /usr/lib/jvm/jdk1.6.0_12/jre/plugin/i386/ns7/libjavaplugin_oji.so


Bu da bitti :)

Fedora 10 ile Amarok 1.4

fc9'dan fc10'a geçişte NetworkManager probleminden sonra en çok canımı sıkan şey Amarok'un 2.0 versiyonu idi. Alışkanlık ve daha ziyade equalizer özelliği yüzünden fc9'da kullandığım Amarok 1.4'ü mumla arar oldum. Her ne kadar ileriki versiyonlarda bunu ekleyecekleri bilgisi verilse de bir şekilde 1.4 e ulaşabilmeliydim. Sorunumun çözümüne tam da Amarok 1.4 in F10 adresindeki 43 no'lu post ile ulaştım.



İlk iş olarak mevcut amarok'u kaldirdim. Akabinde http://forums.fedoraforum.org/showpost.php?p=1121821&postcount=43 'de linkleri verilen rpm'leri lokalime indirip kurmaya giriştim :

$ sudo yum localinstall amarok-1.4.10-1.fc10.i386.rpm

ancak bu esnada
Package amarok-1.4.10-1.fc10.i386.rpm is not signed
hatası ile karşılaştım. Çözümü
/etc/yum.conf
dosyası içerisindeki
gpgcheck=1
satırını
gpgcheck=0
şeklinde değiştirmek.



Daha sonra
$ sudo yum localinstall amarok-visualisation-1.4.10-1.fc10.i386.rpm
ile amarok-visualizations'ı kurdum.
Bu sefer de aldığım hata şöyleydi :
Package amarok-visualisation is obsoleted by amarok, trying to install amarok-2.0.2-3.fc10.i386 instead
Nothing to do

Çözümü bir öncekine benzer :
/etc/yum.conf
dosyası içerisindeki
obsoletes=1
satırını
obsoletes=0
şeklinde değiştirmek.



Son olarak
$ sudo yum localinstall amarok-extras-freeworld-1.4.10-1.fc10.noarch.rpm
ile extras kurulumunu da tamamladım.



Bu noktada unutmamanız gerekenler,
/etc/yum.conf
içindeki
obsoletes
ve
gpgcheck
satırlarını tekrar 1 'e ayarlamak.
Ayrıca sonraki güncellemelerde Amarok 2.0 'a sobelenmemek için
exclude=amarok*
satırını eklemek.

fc10 ve Amarok 1.4 artık bir arada.
İşlem tamam :)

22 Şubat 2009 Pazar

SSL Sertifikasi Olusturma (Fedora 9 - Apache)

Hersey makinamda bulunan sirket web sitesinin test versiyonunun guvenli sayfalarini kontrol etmem esnasinda ortaya cikti. Arkadasimin ssh yapip lokalimde olusturdugu ssl sertifikasinin gecerlilik suresi dolmustu ve benim de nasil yapildigi hakkinda en ufak bir fikrim yoktu :)

Oncelikle; yaptigim arastirmada ssl sertifikasinin suresinin uzatilamadigini, bunun yerine yeniden olusturulmasi gerektigini ogrendim. Bu islemi 2 sekilde yapabiliyoruz: ilki "openssl" ile, digeri de "/etc/pki/tls/certs/Makefile" scriptini kullanarak. Aslinda Aslinda bu script zaten asagida anlatacagim ornegi, sertifika dosya adini parametre olarak almak yoluyla yerine getiriyor(ornek : /etc/pki/tls/certs/make localhost.crt). Scripti acip incelediginizde goreceksiniz.

On bilgi
----------------------------------
Fedora 9'da
sertifika (.crt) dosyalari /etc/pki/tls/certs
key (.key) dosyalari ise /etc/pki/tls/private altinda tutuluyor.
*ssl - Secure Sockets Layer
*tls - Transport Layer Security
*pki - Public Key Infrastructure

openssl ile olusturma

  1. Konsol acip root olalim :
    [ccanaslan@ccanaslan ~]$ su -

  2. Sertifika dosyalarinin bulundugu dizine gidelim :
    [root@ccanaslan ~]# cd /etc/pki/tls/certs

  3. 1024 bit uzunlugunda (default 512), des3 cipher ile encrypt edilmis, localhost.key adinda RSA private key'i olusturalim :
    [root@ccanaslan certs]# openssl genrsa -des3 1024 > localhost.key

  4. Sifre isteyecek, min.4 haneli bir sifre girin. Ne oldugu cok onemli degil, zaten key'in sifre sorma rutinini disable edecegiz. Yoksa apache'yi her resetlemede bu sifreyi soruyor :) Sifreyi verify ettikten sonra localhost.key dosyasinin olustugunu goreceksiniz.

  5. kisaca; localhost.key key'ini kullanarak, 1 yil gecerli olacak olan localhost.crt sertifika dosyasini olusturalim :
    [root@ccanaslan tls]# openssl req -utf8 -new -key localhost.key -x509 -days 365 -out localhost.crt -set_serial 0

  6. 4. maddede girmis oldugunuz sifreyi soracak,girip enter'a basin.

  7. Bu noktada, sizden sertifika tanimlamalarinda kullanilacak bazi bilgiler isteyecek. Bu bilgileri doldurabilir ya da enter'a basarak default degerleri almasini saglayabilirsiniz. (Default degerler /etc/pki/tls/openssl.cnf dosyasinda tutulmakta, isterseniz degistirebilirsiniz. Asagidaki gosterim, ilgili dosyanin degistirilmesinden sonraki halidir). Common Name (eg, your name or your server's hostname) []: sorusunu "localhost.localdomain" girerek gecelim. Goruntu asagidakine benzer olacaktir :
    [root@ccanaslan certs]# openssl req -utf8 -new -key localhost.key -x509 -days 365 -out localhost.crt -set_serial 0
    Enter pass phrase for localhost.key:
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [TR]:
    State or Province Name (full name) [Maslak]:
    Locality Name (eg, city) [Istanbul]:
    Organization Name (eg, company) [Biletix A.S.]:
    Organizational Unit Name (eg, section) [Software Development]:
    Common Name (eg, your name or your server's hostname) []:localhost.localdomain
    Email Address []:ccanaslan@biletix.com
    [root@ccanaslan certs]#

  8. Artik elimizde localhost.key ve localhost.crt dosyalari mevcut. Bu dosyalari "chmod 600 localhost*" komutunu kullanarak sadece root tarafindan okunup yazilabilecek seviyeye getirelim
    [root@ccanaslan certs]# ll localhost*
    -rw-r--r-- 1 root root 1407 2009-02-11 18:29 localhost.crt
    -rw-r--r-- 1 root root 963 2009-02-11 18:18 localhost.key
    [root@ccanaslan certs]# chmod 600 localhost*
    [root@ccanaslan certs]# ll localhost*
    -rw------- 1 root root 1407 2009-02-11 18:29 localhost.crt
    -rw------- 1 root root 963 2009-02-11 18:18 localhost.key

  9. localhost.key dosyasini /etc/pki/tls/private dizinine tasiyalim (bkz. On bilgi) ve bu dizine gecelim.
    [root@ccanaslan certs]# mv localhost.key ../private/

    [root@ccanaslan certs]# cd ../private/

  10. 4. maddede bahsettigim, sifre sorma rutinini iptal etme islemini yapalim:
    [root@ccanaslan private]# cp localhost.key localhost.bak
    [root@ccanaslan private]# openssl rsa -in localhost.bak -out localhost.key
    Enter pass phrase for localhost.bak:
    writing RSA key

  11. Apache'yi restart edelim:
    [root@ccanaslan private]# apachectl restart




/etc/pki/tls/certs/Makefile scriptini kullanarak olusturma

Bu islem cok daha basit. Zira soz konusu script ilk yontemde anlatilan islemleri, parametre olarak aldigi dosya adi ile gerceklestiriyor:
[root@ccanaslan ~]# cd /etc/pki/tls/certs
[root@ccanaslan certs]# make localhost.crt

Bu noktadan itibaren yapilacalar, ilk yontemin 9.maddesinden sonrasi ile aynidir:
[root@ccanaslan certs]# mv localhost.key ../private/
[root@ccanaslan certs]# cd ../private/
[root@ccanaslan private]# cp localhost.key localhost.bak
[root@ccanaslan private]# openssl rsa -in localhost.bak -out localhost.key
Enter pass phrase for localhost.bak:
writing RSA key
[root@ccanaslan private]# apachectl restart

Bitti :))